Como buena costumbre para tener el programa claro a la vista de otros programadores, las clases van en los ficheros cabecera (.h).
¿Se debe añadir una letra al nombre de la clase que la identifique con el proyecto?, es correcto hacerlo sobre todo cuando el proyecto en si se compone de varios ficheros con distintas clases, y esto es para aclarar a qué proyecto o sub-programa pertenece una clase.
Tanto la declaración como la definición de la clase va en el fichero cabecera, sin embargo la definición de las funciones miembro (funciones que forman parte de la clase) van en el fichero principal.
typedef lo que hace es asignarle un "sobrenombre" a una clase o un tipo, ejemplo:
typedef unsigned short int USHORT
Ahora en vez de poner "unsigned short int" cada vez que queremos declarar una variable con esos prefijos, podemos usar directamente "USHORT".
¿Se puede usar unido a una estructura?, si:
typedef struct {
//Variables y funciones miembro
} sobrenombre;
Asi de sencillo, no efectúa ningún tipo de cambio en una estructura sino que la declaras como anónima y le añades un sobrenombre.
CitarLas estructuras. Siempre van en las cabezeras, y se el prefijo es S.
E con enum
C con las classes
Eso es lo mismo que cuando declaras punteros y les pones una "p" delante (por ejemplo: "*pElemento1"), sirve para aclarar de que se trata de un puntero, al igual que los enum y las clases sirve también para identificarlas. No es una premisa sintáctica sino una buena forma de programación; aun asi excepto en los punteros lo demás se suele encontrar muy poco.
Saludos.