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.