[C con Clase] Como hago esto !!!
Salvador Pozo
salvador en conclase.net
Lun Mayo 6 19:42:12 CEST 2013
El pasado 2013-05-06 17:17:42, Hl3 escribió:
H> Hola.
H> A ver si me decis como puedo poner este constructor con parámetros de una clase sencillita:
H> Esta linea:
H> Paisano(char* n,int s):nombre(n), salario(s) {} //imposible
H> no consigo que me la compile ni a tiros.
Hola:
En la parte de inicialización (la que hay después de los dos puntos), sólo puedes invocar constructores. Como nombre es un puntero o un array, no hay constructor por defecto usando una cadena, por eso de da error.
A mi modo de ver hay algunas opciones:
Primera:
Paisano(char* n, int s) : salario(s) {
strcpy(nombre, n);
}
Siendo estrictos, debería ser Paisano(const char* n, int s).
Segunda:
Usar una clase para cadenas, como string, que sí tiene un constructor:
Paisano(const string n, int s) : nombre(n), salario(s) {}
Debes incluir la cabecera #include <string>
Debes declarar el dato nombre como string nombre;
Tercero:
Llegados a este punto, puedes usar un único constructor, con parámetros por defecto:
Paisano(const string n="No Tiene",int s=0) : nombre(n), salario(s) {}
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador en conclase.net
Más información sobre la lista de distribución Cconclase