Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 29-may-2007, 14:46   #1 (permalink)
fernandodl está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 11
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.
fernandodl está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 19:27.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93