Hola ThronerAXE, en cuánto al código me parece bien salvo por un pequeño detalle. Al menos en mi compilador de C++ (uso g++ de GNU para Linux) la biblioteca
iostream debe ser cargada con la sentencia:
#include "iostream"
en lugar de
<iostream.h>. La explicación exacta del por qué no la tengo, pero parece que iostream es más que un simple archivo de cabecera, es como varias cosas que se cargan juntas (o algo así, no se). En fin, el asunto es que en los compiladores más recientes (no así en los antiguos) hay que escribir
"iostream" (sin .h)
Lo demás está bien. Ahora, en cuanto al orden de los argumentos en strcpy te explico. El prototipo de esta función es:
char * strcpy( char * destino, const char origen )
o sea, que PRIMERO va el destino, y de SEGUNDO el origen. Debe ser así, y no al revés. Entiendo que en el constructor de la clase tú desea copiar la cadena nombre a la cadena nom, por tanto debe ser, obligatoriamente:
Por razones similares debe escribirse
num = numero y no al revés. Pues, el operando a la izquierda del operador "=" es quién recibe el valor.
Ante cualquier duda sobre el orden y significado de los argumentos en una función estándar de C debes remitirte a la documentación (help) de tu compilador, a un buen libro/manual de C, o ayuda en línea por ejemplo en la excelente página
c.conclase.net, y por sobre todo atender a la descripción indicada por el prototipo de la función.
Espero haberte ayudado, y cualquier cosa vuelve a preguntar ....