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

Utilizar metodo de una clase dentro de otra clase ¿como?

Estas en el tema de Utilizar metodo de una clase dentro de otra clase ¿como? en el foro de C/C++ en Foros del Web. Hola, tengo problemas para llamar a un metodo de una clase dentro de otro metodo de otra clase. Por un lado tengo una lista enlazada ...
  #1 (permalink)  
Antiguo 29/05/2007, 14:46
 
Fecha de Ingreso: enero-2002
Mensajes: 14
Antigüedad: 22 años, 3 meses
Puntos: 0
Pregunta Utilizar metodo de una clase dentro de otra clase ¿como?

Hola,

tengo problemas para llamar a un metodo de una clase dentro de otro metodo de otra clase.

Por un lado tengo una lista enlazada posicional de punteros:

Código:
FICHERO LISTA2.HPP:


class CListaPos2 {

public:
   
   // TipoElemento de la lista Posicional
   
   typedef int TElem;  

   // Métodos de la lista Posicional
   CListaPos2();    
   ~CListaPos2();   
   bool ListaVacia();
   void InsertarLista(const int pos, const TElem elem);
   void EliminarLista(const int pos);
   int LongitudLista();
   TElem VerElemLista(const int pos);
   void VisualizarLista();
   
private:

   struct TNodo{
      TElem elem;           // información
      TNodo *sig;          // puntero a sig nodo
   };
   
public:

   typedef TNodo *TListaPos2;   
   TListaPos2 l;
};

Por otro lado tengo un clase de un Array de registros con 2 campos:

- un campo cadena de caracteres.
- un campo lista posicional (la lista enlazada pos de punteros anterior).

Código:
FICHERO LISTAINV.HPP:

class CListaInv {

public:
   
   // TipoElemento de la lista Posicional   

   static const int MaxCadena = 60;
   static const int MaxListaInve = 5000;
   
   typedef char TCadena[MaxCadena];
   
   friend void CListaPos2::InsertarLista(const int pos, const TElem elem);

   // Métodos de la lista Posicional
   CListaInv();    
   ~CListaInv();
   void Crear();
   void Insertar(const CListaPos2::TElem elem, const TCadena clave);
   void Ver(const TCadena clave, CListaPos2::TListaPos2 &lista);

   
private:

   struct TNodo{
      TCadena clave;               // información
      CListaPos2::TListaPos2 l2;   // lista pos enlazada
   };
   
   typedef TNodo TListaInv[MaxListaInve];   
   TListaInv li;
};

El problema viene cuando en el fichero LISTAINV.CPP declaro una funcion como:

Código:
void CListaInv::Insertar(const CListaPos2::TElem elem, const TCadena clave)

{

bla bla bla....


        //li[j].l2.CListaPos2::InsertarLista(1,elem);

        li[j].l2.InsertarLista(1,elem);

*** Necesito llamar al metodo InsertarLista que es de la otra clase....

bla bla bla....

}
*** Necesito llamar al metodo InsertarLista que es de la otra clase.... pero me devuelve error al compilar:

Código:
60 C:\WINDOWS\Escritorio\superfinal\listainv.cpp request for member `InsertarLista' in ` this->CListaInv::li[j].CListaInv::TNodo::l2', which is of non-aggregate type

Alguien podria guiarme sobre como llamar al metodo de la otra clase?


Gracias.
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 19:23.