Foros del Web » Programación para mayores de 30 ;) » C/C++ »

inicializar nuevo objeto con constructor de la clase

Estas en el tema de inicializar nuevo objeto con constructor de la clase en el foro de C/C++ en Foros del Web. hola tengo el siguiente codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original class persona {       private :         int edad ...
  #1 (permalink)  
Antiguo 12/04/2009, 13:20
Avatar de Bazookao  
Fecha de Ingreso: diciembre-2008
Ubicación: Mexico
Mensajes: 139
Antigüedad: 15 años, 4 meses
Puntos: 1
inicializar nuevo objeto con constructor de la clase

hola

tengo el siguiente codigo
Código C++:
Ver original
  1. class persona{
  2.       private:
  3.        int edad;
  4.        char nombre[5];
  5.        char app[5];
  6.        char apm[5];
  7.       public:
  8.         persona(int ed,char* n,char* p ,char* m)
  9.         {
  10.              edad=ed;
  11.              strcpy(nombre,n);
  12.              strcpy(app,p);
  13.              strcpy(apm,m);
  14.         }
  15.         int setEdad(int ed)
  16.         {
  17.              edad=ed;
  18.         }  
  19.         void ver()
  20.         {
  21.              cout<<edad<<" "<<nombre<<" "<<app<<" "<<apm;
  22.         }
  23. };
  24. int main()
  25. {
  26.     int a;
  27.     char n[5];
  28.     char p[5];
  29.     char m[5];
  30.     cin>>a;
  31.     cin>>n;
  32.     cin>>p;
  33.     cin>>m;
  34.     persona p1(a,n,p,m);//mia
  35.     persona p2=new persona(a,n,p,m);//del maestro
  36.     p1.ver();
  37.     getche();
  38.     return 0;
  39.     }

en la linea 35 viene segun como se inicia un nuevo objeto de la clase persona segun un maestro, pero como me daba error y empeze a buscar en internet y encontre que se declara como en la linea 34 y todo anda bien

lo que quisiera saber es x que la linea 35 esta mal y si en verdad se puede utilizar el operador new para inicializar objetos

gracias
  #2 (permalink)  
Antiguo 12/04/2009, 16:36
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: inicializar nuevo objeto con constructor de la clase

new retorna un puntero al objeto creado y tu variable no es un puntero, asi te funcionara:

Código:
persona *p2=new persona(a,n,p,m);//del maestro
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 12/04/2009, 17:42
Avatar de Bazookao  
Fecha de Ingreso: diciembre-2008
Ubicación: Mexico
Mensajes: 139
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: inicializar nuevo objeto con constructor de la clase

muy bien pero ahora me marca error en
Código c++:
Ver original
  1. p1.ver();

dice que ver no sta declarada
  #4 (permalink)  
Antiguo 13/04/2009, 02:47
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: inicializar nuevo objeto con constructor de la clase

Bueno, eso ya es otra cosa, en si tu codigo tal como lo dejaste aca no compila (le faltan cabeceras). De otra manera va perfectamente ... ¿Estas usando el Turbo C por casualidad? ¿Seguro que no pusiste ahora p2.ver();? Si es asi tenes que acceder desreferenciando el puntero:

Código:
p2->ver();
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:09.