Ayuda con estas clases

maverigh
11 de Mayo del 2004
Hola a todos primero agradecer a "noel solw" por su aporte anterior, pero no me queda claro lo siguiente, se supone que el struc es el primitivo de las clases yo necesito trabajar con clases y realizar una lista dinamica, ahora tengo hecho 3 archivos los cuales son nodo.h, lista.h y lista.cpp; entonces cuando compilo la lista.cpp me da los siguientes errores: me da error diciendo 2 veces syntax error before '*' token; In constructor 'lista::lista()'; 'primero' undeclared (firs use this function); build error.
Ahora por lo que me respondio noel utiliza struc, pero no se supone que si yo utilizo clases no deberia de tener el struc ya que la clase es una mejora de este?, el codigo de los archivos es el siguiente:

Archivo nodo.h

class nodo{
friend class lista;
private:
string palabra;
nodo *siguiente;
nodo *anterior;
public:
nodo(string pa)
{
palabra=pa;
siguiente=NULL;
anterior=NULL;
}
};
--------------------------------------------
Archivo lista.h

#include <stdio.h>
#include <string>
typedef nodo *pnodo;
class lista{
private:
nodo *primero;
nodo *ultimo;
public:
lista()
{
primero=NULL;
ultimo=NULL;
}
void mostrar();
};
-------------------------------------------
Archivo lista.cpp

#include "lista.h"

void lista::mostrar()
{
}

esta ultima la tengo asi para probar que compile, por eso no tiene mas metodos.

Espero me puedan ayudar y me puedan aclarar mis dudas y ver que tiene malo este codigo.

cris
11 de Mayo del 2004
si me mustras la clse lista te podria ayudar para ver cual es el verdadero problema

cris
11 de Mayo del 2004
la lista cpp por supuesto

Alejandro_
11 de Mayo del 2004
En tu archivo.h deberías poner:

#include "nodo.h"

para que al compilarse se reconozcan expresiones como "nodo *primero"

Otra cosa: si usas la biblioteca <string> del C++, recuerda que sus objetos están en espacio de nombres std. Falta poner using namespace std; o using std::string; o std::string palabra;

Y también, en la clase nodo, incluyes la clase lista como "friend". Supongo que será la función mostrar() la accederá a los miembros de nodo. En ese caso, también tendrías que declarar a la clase lista en el módulo nodo.h

Suerte,

Alejandro