Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C++ by saguma ( 13 years ago )
/*
* Licencia del código
*
* Autor:
* Version:
* Última actualización:
*/
// Comentarios en una línea con espacio después de // (y antes si se pone después de una expresión)
/*
* Comentarios en varias líneas con los * alineados
* y un espacio despues de ellos.
* En la primera linea no se escribe
*/
// Las listas siempre llevan espacios (al heredar (1*), parámetros función (2*), for (3*))
// Longitud máxima de la línea unos 100 caracteres (esta línea y la siguiente tienen 107, sería admisible)
// Lo primero tras el comentario con la licencia y demás, será la guarda que seguirá el siguiente formato:
// _<Nombre de la clase>_H
#ifndef _NOMBRECLASE_H
#define _NOMBRECLASE_H
#include <string>
#include <iostream>
#include “OtraClase.h”
namespace NombreNameSpace {
/*
* Comentario de documentacion de la clase NombreClase
* ¿Qué hace la clase?
*/
// Espacio antes y después de los dos puntos
class NombreClase : public OtraClase, public OtraClasePadre { // (1*)
// Solo una sección privada, protegida y publica, y en ese orden
// siempre definidas aunque no se usen
private:
// Definiciones de variables de clase camelCase y notación húngara
// DocuComentario: Lo que va a contener _x (y no vale con poner "_x contiene un entero")
int _x;
char _nombreMasLargo;
bool _booleano;
bool _condicion;
// Definicion de constantes de clase con enums
enum constante { value = 1024 };
// O static const si no es de tipo entero
static const char *name;
// métodos y parametros camelCase
void funcionConNombreLargo(int paramEntero, bool verdaderoOFalso); // (2*)
protected:
public:
/**
* Codigo de documentacion de getX()
*/
// Los getters y setters simples se pueden poner de esta forma y en el .h mejor que en el .cpp
int getX() { return _x; }
// En los templates se usará class si el tipo solo puede ser una clase
// y typename para cualquier tipo (Clase, tipo primitivo y puntero)
template <class T> // Estaría mal si T fuese un entero debería ser typename
void staments(T param1, int i) { // Este metodo lo implemento aquí por no crear otro archivo,
// pero debería ir en el cpp ERROR DE ASTYLE
//bool booleano; // Mal, intentar no repetir nombres de miembros de la clase
// Intentar poner las condiciones agrupadas con paréntesis en la misma linea
// preferible esto
if ((unObjeto.compruebaCosas() || otroObjeto.compruebaOtrasCosas())
&& (_booleano)) {}
// a esto otro
if ((unObjeto.compruebaCosas()
|| otroObjeto.compruebaOtrasCosas()) && (_booleano)) {}
// else en la misma línea que la llave de cierre
if (_condicion) {
// Código
} else {
// Mas código
}
// switch con cases indentados y el codigo mas identando
switch (test) {
case firstCase:
// Código
break;
case commonCase1:
case commonCase2:
// Código
break;
case commonCase1:
// Código
c
case commonCase2:
// Mas código
break;
default:
break;
}
// for
// el tipo del contador será auto (si el compilador lo admite), salvo que sea un entero.
for (auto i = 0; i < max; ++i) { // (3*)
}
for (auto i = 0; // Inicializacion
muchasComprobacionesYMuyLargasQueOcupaMuchoParaPonerloEnUnaSolaLinea(i); // Comprobación
++i) { //Actualización
}
// En el while y el do while se seguirá el mismo formato que con los if
while (condicion) {
}
do {
} while (condicion);
// Uso de miembros de clase
// variables
_booleano = true; // No se usa this
// llamadas a funciones
this->getX(); // Si se usa this
// Muchas líneas en blanco, solo se permite una línea en blanco
// Separacion entre los operadores (el igual tambien es un operador)
int a = 4 + 5 * 7;
}
}; //NombreClase
}
#endif //_NOMBRECLASE_H
Revise this Paste