Beruflich Dokumente
Kultur Dokumente
Grundlegendes zu Doxygen
Doxygen Dokumentationen werden im Code-Kommentar geschrieben und befinden sich vor dem zu
dokumentierenden Objekt. Damit Doxygen wei, dass der Kommentar zur Dokumentation gehrt
muss man den Kommentar mit einem Ausrufezeichen beginnen: /*! */
Doxygen Befehle knnen auf zwei Arten geschrieben werden: Entweder \command oder
@command. Manche Doxygen Befehle beziehen sich nur auf das nchste Wort (z.B. \a, \p), manche
auf die folgende Zeile (z.B. \param, \sa) und manche auf den folgenden Absatz (z.B. \brief, \note).
Bei den Befehlen, die sich auf einen Absatz beziehen muss man eine Leerzeile am Ende einfgen
und den Absatz zu beenden.
Zum Erstellen der Dokumentation lsst man doxygen mit einem doxyfile laufen
(Konfigurationsdatei). Mit Eclox (Eclipse Plugin fr Doxygen) geht das einfach ber den Button
Build Doxyfile (Symbol ist ein blaues @). Nur noch doxyfile auswhlen und OK klicken.
\code \endcode
\exception object description
\n
\note
\warning
\attention
\p
\param[[in]|[out]] parameter description
Bedeutung
Kursiv, Hervorhebung von Argumenten/Variablen im
Text
Kursiv, sonstige Hervorhebung
Kurzbeschreibung einer Klasse/Methode/etc.
Dokumentation der Klasse class; wird nur bentigt um
in der Dokumentation den Header mit
Anfhrungszeichen und nicht mit spitzen Klammern
anzuzeigen (lsst sich leider nicht global festlegen)
Beispiel Quellcode Umgebung
Beschreibung mglicher Fehler; object ist das
geworfene Object und description die entsprechende
Beschreibung
Zeilenumbruch
Schreibt Note: bzw. Warning: bzw. Attention: als
berschrift und der nachfolgende Text wird eingerckt
Typewriter, Hervorhebung von Parametern im Text
Parameterbeschreibung bei einer Funktion; parameter
ist der zu beschreibende Parameter und description die
entsprechende Beschreibung; [in] bzw. [out] geben an,
ob es sich um einen reinen Eingabe- oder
\return description
\sa
\section section title
\subsection subsection title
\subsubsection subsubsection title
\paragraph paragraph title
Dokumentationsbeispiel
/*! \class myClass myClassHeader.h include/myClassHeader.h
* \brief My own class.
*
* I created it and I like it. Its very useful and handy.
* myClass does what I want.
*
* Example:
* \code
* myClass myClassInstance();
* myClassInstance.doWhatIWant();
* \endcode
*
* \sa notMyClass, anotherClass::someMethod()
*/
class myClass
{
public:
//####### Enums #######
/*! \brief My own enum.
*
* Some nice enumerators.
*/
enum MyEnum {
someEnum,
//!< The first enum.
someMoreEnum
//!< Another enum.
};
//####### Constructors #######
/*! \brief Standard-Constructor.
*
* Does nothing special.
*/
myClass() { };
/*! \brief Copy-Constructor.
*
* Creates a deep copy of \p other.
*
* \param[in] other The instance of myClass to be copied.
*/
myClass(const myClass& other) { _member = other._member; };
//####### Destructor #######
/*! \brief Standard-Destructor.
*
* Does nothing special.
*/
~myClass() { };
//####### Public Methods #######
/*! \brief This method does what I want.
*
* This is another inline-method.
*
* \sa doNotWhatIWant()
*/
void doWhatIWant() { ++_member; };
int doNotWhatIWant();
private:
//####### Private Members #######
int _member;
};
/*! \brief This method does not what I want.
*
* This is not an inline-method.
*
* \section list_example Example of a List
* Here is a list:
* - this is the first list element
* - this is another list element
*
- and this is subelement
*
- and another subelement
*
- we can go even deeper
*
.
*
The point above allows us to continue with the second
*
subelement.
* - and here the list continues
*
* \section numbered_list_examples Example of a numbered List
* Now follows a numbered list:
* <OL>
*
<LI>this is the first point</LI>
*
<LI>this is the second point</LI>
* </OL>
*
* \return What you have done.
*
* \sa doWhatIWant()
*/
int myClass::doNotWhatIWant()
{
--_member;
return _member;
}