/** ******************************************************************************* @file /common/_cpp.h @brief Ukazka toho jak ma vypadat header Podrobnosti naleznete zde: http://www.stack.nl/~dimitri/doxygen//manual.html specielne zde: http://www.stack.nl/~dimitri/doxygen//docblocks.html @author Vajicek @version 0.1 ******************************************************************************/ #ifndef CPP_H #define CPP_H /* O tehle makrech sme vsichni dohodnuty, muze tu byt cokoliv, ale melo by to byt unikatni. Pokud nebude, pozna se to rychle, takze ja kvuli tomu nijak neplasim. */ #include /* POZOR!! Pouzivejte namespace. Namespace je C++ kova zalezitost. Proto ve vsech headrech C++ uzavrete deklarace do namespace. Zakladni namespace by meli odpovidat adresaum v korenu projektu. ai, world, gui, net, common... PROC? -Uz se stao, ze maji dva lide tridy stejneho nazvu. V ramci ruznych namespacu to nevadi. Navic na jednom namespace pracuje vetsinou jeden clovek. -Doxygen umi nemaspace hezky zobrazovat. -Je to dobre pro stukturovani na urovni zdrojaku. VAROVANI: v headrech se nesmi pouzivat using namespace, protoze jak preprocesor rozbaluje includy muze se stat, ze budete mit nejaky header v namespacu, kde kde jste ho mit nechteli. Proto pouzivejte explicitne nemespace pred typama v headrech Namespace uvadejte az po standardnich includech(zatim nevim proc) */ /** TESTOVACI NAMESPACE Toto je testovaci namespace. */ namespace test { /** @brief C struktura - komentar v headru, toto je brief Tahle struktura je mi k nicemu. */ typedef struct _moje_struktura { int a; int b; std::vector v_int; ///vektor intu, musi se explicitne uvest namespace } moje_struktura; /** C++ struktura - komentar v headru Tahle struktura je dulezita pro... */ struct TMojeStruktura { int a; int b; }; /** C++ trida - komentar v headru Trida reprezentuje... */ class TMojeTrida { public: int iA; ///< komentar k clenu TMojeTrida(); private: int iB; }; /*exportovana funkce - tento komentar se nebude generovat v doxygenu*/ extern void moje_chytra_funkce(int p, int p2); /** Exportovana funkce - tento se nebude generovat, protoze prednost ma popis v cpp. V pripade, ze je zapnuto JAVADOC_AUTOBRIEF pocita se jako brief text za dvojhvezdickou a ma prednost pred cpp. */ void MojeChytraFunkce(int p, int p2); /** Comment - Komentar v headru. Tento komentar se generuje, protoze v cpp neni. */ extern void mojeChytraFunkce(int p, int p2); /* wlk/vajicek - návrh konvence o malých a velkých písmenech. Názvy tříd a struktur, typu: začínají velkým T a i druhé písmeno je velké Typedefy: podle ucelu, napr. typedef TMujTyp* PMujTyp; typedef vector TVectorIntegeru; Názvy funkcí : metody - mojeFunkce() prvni zacina na male dalsi slova na velka nizkourovnove fce, nebo funkce v C - moje_funkce() vysokourovnove globalni funkce - MojeFunkce() parametrica makra - podle libosti, vzhledem k tomu, ze se vetsinou snazite setrit mistem a/nebo zprehlednit kod Nazvy proměnných: začínají malým písmenem, identifikatorem typu, pr: iHodnotaInteger, dPrumer, p3fBod, vVektorCisel . Názvy konstant a enum hodnot : všechna písmena velká PZ: Fajn navrh - ale i ty parametricky makra bych psal striktne velkejma. Jinak jak rozlisit jmena trid a struktur: casto sem videl u trid misto velkejch T velky C - to je navrh na posouzeni. */ class TVelkePismeno { private: char c; public: TVelkePismeno( ); int clenskaPromenna; char clenskaFunkce( int parametr); operator const char( ); }; char MalaVelkaPismena( int param); }//namespace - kdyz je uzaviraci zavorka daleko od oteviraci pouzijte komentar #endif //CPP_H /*****************************************************************************/