Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Alcarendor

#1
Buenas, tengo un problema con una sencilla inclusión doble en C++. Estoy haciendo una práctica de un árbol AVL y, para construirla, se me pide que haya una clase Nodo con dos punteros a otra clase Arbol, mientras que a la vez la clase Arbol contenga un atributo tipo Nodo.

Bien, el error está en que, incluso poniendo en #ifndef y demás, cuando incluyo mutuamente ambas clases el compilador (g++ sobre Linux) se vuelve loco y los tipos empiezan a fallar de manera aleatoria, diciendo que Arbol y/o Nodo no definen ningún tipo. Os dejo el texto completo de la definición de las clases, a ver si alguien ve el error que tengo y no se ver ya que, aunque he aplicado otras soluciones a problemas similares (incluidas soluciones encontradas en este foro) no logro dar con la tecla (que seguro que luego es una tontería).

ARBOL.hpp
Código (cpp) [Seleccionar]
#ifndef _ARBOL_HPP_
#define _ARBOL_HPP_

#include "NODO.hpp"

using namespace std;

class Arbol{

private:
Nodo * raiz;
public:
Arbol();

};
#endif


ARBOL.cpp

Código (cpp) [Seleccionar]
#include "ARBOL.hpp"

Arbol::Arbol(){}


NODO.hpp
Código (cpp) [Seleccionar]
#ifndef _NODO_HPP_
#define _NODO_HPP_

#include <string>
#include "ARBOL.cpp"

using namespace std;

class Nodo {
private:
string clave;
int altura;
Arbol * izquierdo;
Arbol * derecho;
public:
Nodo();

};

#endif


NODO.cpp
Código (cpp) [Seleccionar]
#include "NODO.hpp"

Nodo::Nodo(){
string = "";
int = 0;
izquierdo = NULL;
derecho = NULL
}


Un saludo y gracias.