No hay un estándar para documentar el código (Java, C o C++). Hay herramientas que hacen documentación del código fuente y pueden tener un estándar en progreso.
Aquí es un estilo que me he adaptado a través de las edades:
//! This class represents a fraction: xx nn/dd.
/*! Where xx is the whole number, nn is the numerator, dd is the denominator.
* \author Thomas Matthews
*/
class Fraction
: public boost::equality_comparable<Fraction>,
public boost::less_than_comparable<Fraction>,
public boost::addable<Fraction>,
public boost::subtractable<Fraction>,
public boost::multipliable<Fraction>,
public boost::dividable<Fraction>
{
//---------------------------------------------------------------------
// Friends
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// Public fraction
//---------------------------------------------------------------------
public:
//---------------------------------------------------------------------
// Public Constructors and Destructors
//---------------------------------------------------------------------
public:
//! Constructor -- string
Fraction(const std::string& fraction_text);
//! Constructor -- whole, numerator, denominator as integers
Fraction(const int& denomenator = 1,
const int& numerator = 0,
const int& whole = 0);
//! Constructor -- floating point
Fraction(const double& floating_point);
//! Copy constructor
Fraction(const Fraction& rc);
//! Destructor
virtual ~Fraction();
//---------------------------------------------------------------------
// Public Overloaded Operators
//---------------------------------------------------------------------
public:
Fraction& operator= (const Fraction& f);
bool operator==(const Fraction& f) const;
bool operator==(const double& d) const;
bool operator< (const double& d) const;
bool operator< (const Fraction& f) const;
Fraction& operator+=(const Fraction& f);
Fraction& operator-=(const Fraction& f);
Fraction& operator*=(const Fraction& f);
Fraction& operator/=(const Fraction& f);
Fraction& operator*=(const unsigned int scalar_value);
Fraction& operator/=(const unsigned int scalar_value);
operator double(void) const;
//---------------------------------------------------------------------
// Public Methods
//---------------------------------------------------------------------
public:
//! Returns the fraction as a string.
std::string get_value_as_string(void) const;
//! Sets the value from a string.
void set_value(const std::string& fraction_string);
//! Sets the value from a floating point value.
void set_value(const double& value);
//! Simplifies the fraction by reducing the denominator & numerator.
void simplify(void);
//---------------------------------------------------------------------
// Public Members
//---------------------------------------------------------------------
public:
//---------------------------------------------------------------------
// Protected Methods
//---------------------------------------------------------------------
protected:
//---------------------------------------------------------------------
// Protected Members
//---------------------------------------------------------------------
protected:
//---------------------------------------------------------------------
// Private Methods
//---------------------------------------------------------------------
private:
//---------------------------------------------------------------------
// Private Members
//---------------------------------------------------------------------
private:
unsigned int m_whole;
int m_numerator;
unsigned int m_denomenator;
};
//-------------------------------------------------------------------------
// Fraction Exceptions
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Fraction Fraction
//-------------------------------------------------------------------------
//typedef boost::shared_ptr<Fraction> Ptr_Fraction;
//typedef boost::shared_ptr<const Fraction> Ptr_Const_Fraction;
//-------------------------------------------------------------------------
// Inlined Fraction Constructors and Destructors
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Inlined Fraction Overloaded Operators
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
// Inlined Fraction Methods in alphabetical order
//-------------------------------------------------------------------------
En un momento, tuve Eclipse poner esto en nuevos archivos que he creado.
Lo guardo en un archivo de plantilla, y copio el archivo antes de escribir un nuevo código. La galería de símbolos no tendría las declaraciones de métodos o las líneas de herencia.
Este ¡suena genial! ¿Hay algún archivo de configuración que pueda compartir, o puede publicar sus plantillas aquí? –
Hay plantillas predeterminadas ya programadas en CDT para estas que puede modificar. Sin embargo, deberá activar el estilo de documentación en doxygen. Está en las opciones de CDT. – David