[C con Clase] Referencias a objetos
Rolando Kindelan Nuñez
rkindelan en estudiantes.uci.cu
Lun Dic 11 19:45:28 CET 2006
el problema es que tu estas creando un arreglo de Objetos perro y otro de Objetos gato, por lo tanto no puedes desreferenciarlo, y ese es el error que te da, pero si en cambio defines
cPerro** MisPerros;
cGato** MisGatos;
y en los metodos respectivos los programas de esta forma..
MisPerros = new cPerro*[pCant];
MisGatos = new cGato*[pCant];
entonces no eliminara el error,
espero eso te ayude.
pensar en el futuro, hace el presente mas complicado.
________________________________
From: cconclase-bounces en listas.conclase.net on behalf of Reinel Hernández Peraza
Sent: Mon 11.12.2006 8:04
To: Lista de correo sobre C y C++
Subject: [C con Clase] Referencias a objetos
Hola amigos de la lista
// *** DEFINICION DE MI CLASE CPATIO *** //
class cPatio {
private:
float mArea;
cPerro *MisPerros;
cGato *MisGatos;
public:
cPatio(float pArea);
void Get_Datos_Patio();
void Set_Area(float pArea);
void Set_Crea_Perros(int pCant);
void Set_Crea_Gatos(int pCant);
cPerro &Get_Perro(int i)
{
return *(MisPerros[i]);
}
cGato &Get_Gato(int i)
{
return *(MisGatos[i]);
}
};
cPatio::cPatio(float pArea): mArea(pArea) {}
void cPatio::Set_Area(float pArea)
{
mArea = pArea;
}
void cPatio::Set_Crea_Perros(int pCant)
{
MisPerros = new cPerro[pCant];
}
void cPatio::Set_Crea_Gatos(int pCant)
{
MisGatos = new cGato[pCant];
}
void cPatio::Get_Datos_Patio()
{
printf("** DATOS DEL PATIO ** DATOS DEL PATIO **\n");
printf("** | Area: %6.2f\n", mArea);
printf("** DATOS DEL PATIO ** DATOS DEL PATIO **\n");
}
Esta es la definición de mi clase cpatio. Estoy intentando devolver la referencia a los objetos cPerro, y cGato que son miembros de mi clase cPatio, pero me marca errores, tanto si uso:
return *(MisPerros[i]);
como si uso:
return *MisPerros[i];
me temo que debe ser por la manera en que estoy creando en TE mis objetos, cuyos métodos son:
void cPatio::Set_Crea_Perros(int pCant)
{
MisPerros = new cPerro[pCant];
}
void cPatio::Set_Crea_Gatos(int pCant)
{
MisGatos = new cGato[pCant];
}
Me pueden ayudar.
Gracias por todo.
Reinel Hernández Peraza
Técnico Hardware Docente 3
Universidad Ciencias Informáticas.
"Vivimos para hacer historias, o para ser historia"
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 10272 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061211/43fc59c1/attachment.bin>
Más información sobre la lista de distribución Cconclase