Que esta mal en este codigo
Hola a todos soy nuevo en esto del c++ y necesito hacer unas clases que utilizen una lista dinamica y al compilar con lo minimo es decir sin grandes metodos me salen errores los cuales no entiendo el porque, quien me pueda orientar sobre cual es el error se los agradeceria, el codigo es muy simple y es el siguiente:
class nodo{
friend class lista;
private:
string palabra;
nodo *siguiente;
nodo *anterior;
public:
nodo(string pa)
{
palabra=pa;
siguiente=NULL;
anterior=NULL;
}
};
--------------------------------------------
#include <stdio.h>
#include <string>
typedef nodo *pnodo;
class lista{
private:
nodo *primero;
nodo *ultimo;
public:
lista()
{
primero=NULL;
ultimo=NULL;
}
void mostrar();
};
-------------------------------------------
#include "lista.h"
void lista::mostrar()
{
}
esta ultima la tengo asi para probar que compile, pero me da error diciendo 2 veces syntax error before '*' token; In constructor 'lista::lista()'; 'primero' undeclared (firs use this function); build error
Espero me puedan ayudar ya que necesito aprender a programar en c++ estas listas dinamicas ya que despues tengo que hacer otra con un doble enlace y si no me funciona esta menos la otra. desde ya se agradece cualquier aporte
class nodo{
friend class lista;
private:
string palabra;
nodo *siguiente;
nodo *anterior;
public:
nodo(string pa)
{
palabra=pa;
siguiente=NULL;
anterior=NULL;
}
};
--------------------------------------------
#include <stdio.h>
#include <string>
typedef nodo *pnodo;
class lista{
private:
nodo *primero;
nodo *ultimo;
public:
lista()
{
primero=NULL;
ultimo=NULL;
}
void mostrar();
};
-------------------------------------------
#include "lista.h"
void lista::mostrar()
{
}
esta ultima la tengo asi para probar que compile, pero me da error diciendo 2 veces syntax error before '*' token; In constructor 'lista::lista()'; 'primero' undeclared (firs use this function); build error
Espero me puedan ayudar ya que necesito aprender a programar en c++ estas listas dinamicas ya que despues tengo que hacer otra con un doble enlace y si no me funciona esta menos la otra. desde ya se agradece cualquier aporte
programa corregido:
hay que dividir el programa en dos partes : header file y programa propiamente dicho.
#include <string.h>
#include <iostream.h>
struct nodo // se acostumbra a definir como struct, costumbre nada mas
{
private:
char *palabra;
nodo *siguiente;
nodo *anterior;
public:
nodo(char * pa)
{
palabra = new char[strlen(pa)];
strcpy(palabra,pa);
siguiente=NULL;
anterior=NULL;
} // CONSTRUCTOR
}; // STRUCT NODO
// -------------------------------------------- "//" en la separacion
class lista
{
private:
nodo *primero;
nodo *ultimo;
public:
lista()
{
cout << "lista constructor" << endl;
primero=NULL;
ultimo=NULL;
} // COSNSTRUCTOR
}; // CLASS LIST
// -------------------------------------------
----------------------------------------------------------------------
#include "lista.h" // en el momento que usaste el include,esto va en un programa aparte
void main()
{
lista a;
} // MAIN
hay que dividir el programa en dos partes : header file y programa propiamente dicho.
#include <string.h>
#include <iostream.h>
struct nodo // se acostumbra a definir como struct, costumbre nada mas
{
private:
char *palabra;
nodo *siguiente;
nodo *anterior;
public:
nodo(char * pa)
{
palabra = new char[strlen(pa)];
strcpy(palabra,pa);
siguiente=NULL;
anterior=NULL;
} // CONSTRUCTOR
}; // STRUCT NODO
// -------------------------------------------- "//" en la separacion
class lista
{
private:
nodo *primero;
nodo *ultimo;
public:
lista()
{
cout << "lista constructor" << endl;
primero=NULL;
ultimo=NULL;
} // COSNSTRUCTOR
}; // CLASS LIST
// -------------------------------------------
----------------------------------------------------------------------
#include "lista.h" // en el momento que usaste el include,esto va en un programa aparte
void main()
{
lista a;
} // MAIN
