[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