1.Whether debo poner las declaraciones de clase en su propio archivo de encabezado, y su aplicación real en otro archivo ?
Puede escribir la definición de una clase y la definición de los miembros de la clase por separado en el mismo archivo de encabezado si está manipulando plantillas. Además, si desea que sus miembros funcionen en línea, puede definirlos dentro de la definición de clase. En cualquier otro caso, es mejor separar la definición de la clase (archivo .hpp) y la definición de los miembros de la clase (.cpp).
2.Si debo poner encabezados como en el archivo example.h o en el archivo example.cpp ?
Depende de si necesita esos encabezados en el archivo example.h o solo en su archivo .cpp.
3. Si todas las clases tienen que utilizar, e incluyo el archivo de cabecera de una clase en cabecera de otra clase, ¿significa que incluido dos veces?
Sucede si no envuelve sus definiciones de clase por las siguientes macros:
#ifndef FOO_HPP
#define FOO_HPP
class {
...
};
#endif
5. Si utilizo un lote clases STL, lo que es una buena práctica utilizar std: :?
Creo que siempre es mejor utilizar std::
cada vez en lugar de . De esta forma, solo usará los espacios de nombres que necesite y su código será más legible porque evitará conflictos de espacios de nombres (imagine dos métodos que tienen el mismo nombre y pertenecen a dos espacios de nombres diferentes).
Pero lo más importante es dónde está la pregunta número 4 de todos modos?
# 4 es lo suficientemente clara como para merecer su propia pregunta – Cameron
Estas son cuestiones dignas, pero la combinación de todos ellos en uno es "demasiado amplia". –