Duda:(

02/09/2004 - 01:31 por Lorena | Informe spam
Hola, he escrito antes, tenigo una duda en el programa
que estoy haciendo. Me han dicho que escriba el
constructor de la clase, es este:
Persona::Persona(const char *n,const char *a,const
unsigned d){
nombre=new char[sizeof(n)];
apellidos=new char[sizeof(a)];
dni=d;
strcpy(nombre,n);
strcpy(apellidos,a);
}

Mi problema es que cuando hago en el destructor:
delete[] nombre;
delete[] apellidos;

Me da un error de ejecución.
¿A que es debido?
Muchas gracias.
 

Leer las respuestas

#1 Octavio Hernandez
02/09/2004 - 02:17 | Informe spam
Lorena,

Yo escribiría el constructor así:

Persona::Persona(const char *n, const char *a, const unsigned d)
{
nombre = new char[strlen(n) + 1];
apellidos = new char[strlen(a) + 1];
dni = d;
strcpy(nombre, n);
strcpy(apellidos, a);
}

El destructor entonces sería:

Persona::~Persona()
{
delete[] nombre;
delete[] apellidos;
}

Slds - Octavio

"Lorena" escribió en el mensaje
news:470001c4907b$bdc10fe0$
Hola, he escrito antes, tenigo una duda en el programa
que estoy haciendo. Me han dicho que escriba el
constructor de la clase, es este:
Persona::Persona(const char *n,const char *a,const
unsigned d){
nombre=new char[sizeof(n)];
apellidos=new char[sizeof(a)];
dni=d;
strcpy(nombre,n);
strcpy(apellidos,a);
}

Mi problema es que cuando hago en el destructor:
delete[] nombre;
delete[] apellidos;

Me da un error de ejecución.
¿A que es debido?
Muchas gracias.

Preguntas similares