elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Problema con los tipos en una inclusión doble. en: 3 Diciembre 2013, 01:21 am
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
  1. #ifndef _ARBOL_HPP_
  2. #define _ARBOL_HPP_
  3.  
  4. #include "NODO.hpp"
  5.  
  6. using namespace std;
  7.  
  8. class Arbol{
  9.  
  10. private:
  11. Nodo * raiz;
  12. public:
  13. Arbol();
  14.  
  15. };
  16. #endif

ARBOL.cpp

Código
  1. #include "ARBOL.hpp"
  2.  
  3. Arbol::Arbol(){}

NODO.hpp
Código
  1. #ifndef _NODO_HPP_
  2. #define _NODO_HPP_
  3.  
  4. #include <string>
  5. #include "ARBOL.cpp"
  6.  
  7. using namespace std;
  8.  
  9. class Nodo {
  10. private:
  11. string clave;
  12. int altura;
  13. Arbol * izquierdo;
  14. Arbol * derecho;
  15. public:
  16. Nodo();
  17.  
  18. };
  19.  
  20. #endif

NODO.cpp
Código
  1. #include "NODO.hpp"
  2.  
  3. Nodo::Nodo(){
  4. string = "";
  5. int = 0;
  6. izquierdo = NULL;
  7. derecho = NULL
  8. }

Un saludo y gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines