[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