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:
*** Necesito llamar al metodo InsertarLista que es de la otra clase.... pero me devuelve error al compilar: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.... }
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.