[C con Clase] Como hago esto !!!

Davidson, Steven srd4121 en njit.edu
Lun Mayo 6 19:41:32 CEST 2013


Hola Hl3,

2013/5/6 Hl3 <halowin3 en gmail.com>

> Hola.
>
>
[CORTE]

Esta linea:
> Paisano(char* n,int s):nombre(n), salario(s) {}  //imposible
>
> no consigo que me la compile ni a tiros.
>
>
El problema es que estás intentando modificar un array, que es una
dirección de memoria, el cual es tratado como un puntero constante. Es
decir, intentas modificar una constante, y por eso el compilador no te lo
permite.

La solución es lo que tienes comentado en el constructor.

La otra solución es usar la clase estándar 'string' para representar una
cadena de caracteres. Por ejemplo,

class Paisano
{
  std :: string nombre;
  int salario;

public:
  Paisano() : nombre("No tiene"), salario(0)  {}
  Paisano( const string &nom, int sal ) : nombre(nom), salario(sal)  {}
};

Como estamos instanciando objetos, no tenemos problemas; internamente la
clase 'string' se encarga de los detalles de copiar la cadena.

Viendo los dos constructores, podemos usar parámetros con valores por
defecto, para obtener un solo constructor:

Paisano( const string &nom = "No tiene", int sal = 0 ) : nombre(nom),
salario(sal)
 {}


Espero que todo esto te aclare la duda.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130506/6d431e2b/attachment.html>


Más información sobre la lista de distribución Cconclase