Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema al portar de VS a NETBEANS y otros...

Estas en el tema de Problema al portar de VS a NETBEANS y otros... en el foro de C/C++ en Foros del Web. Hola familia. Tengo un problema... El tema es que comence a hacer un proyecto de c++ con Visual studio, y ahora necesito portarla a netbeans. ...
  #1 (permalink)  
Antiguo 01/04/2013, 20:50
 
Fecha de Ingreso: marzo-2013
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Problema al portar de VS a NETBEANS y otros...

Hola familia.
Tengo un problema...
El tema es que comence a hacer un proyecto de c++ con Visual studio, y ahora necesito portarla a netbeans.
El problema es que con Visual studio no me daba ningun tipo de problemas de los que me está dando ahora con nb.
Uno de los errores que no consigo resolver es el siguiente:
Muestro el mensaje y el código:
error:

arbol.h:13: error: redefinition of `class arbol'
arbol.h:13: error: previous definition of `class arbol'

Donde la clase arbol es:
(.h)
Código C++:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6. #define RAMA_NULL 100
  7. #define  DIA  -1
  8. #define BOX  -2
  9. #define  NOT -3
  10. #define AND  -4
  11. #define OR -5
  12. #define IMPLIES -6
  13. class arbol{
  14. private:
  15.     //Arbol binario no completo.
  16.     struct nodetype
  17.     {
  18.         int  raiz;//Puede ser un operador o un literal
  19.         arbol *izq, *der;//Arbol izq, der.
  20.     } *r;
  21.  
  22.    
  23.     void imprimirOperador(int i){
  24.         switch (i){
  25.         case DIA:
  26.             cout<<"|(DIA)|";
  27.             break;
  28.         case BOX:
  29.             cout<<"|(BOX)|";
  30.             break;
  31.         case NOT:
  32.             cout<<"|(NOT)|";
  33.             break;
  34.         case AND:
  35.             cout<<"|(AND)|";
  36.             break;
  37.         case OR:
  38.             cout<<"|(OR)|";
  39.             break;
  40.         case IMPLIES:
  41.             cout<<"|-(==>)-|";
  42.         default:
  43.             break;
  44.         }
  45.     }
  46.  
  47.  
  48.  public:
  49.     arbol();//Constructor
  50.     ~arbol();//Destructor, llama al método destructor
  51.     void setValor(int x) {r->raiz = x;};//Da  valor de la raiz.
  52.     arbol * getArbolIzq();
  53.     arbol * getArbolDer();
  54.     void destructor();//Destructor
  55.     void insertarIzq(arbol *);//Inserta arbol al nodo izquierdo
  56.     void insertarDer(arbol *);//Inserta arbol al nodo derecho
  57.    
  58.     int raiz();
  59.     int altura();
  60.     void preorden();//Recorrido del arbol en preorden. De momento imprime el arbol en preorden
  61.     //void inorden();
  62.     //void postorden();
  63.     void preorden(arbol *);//Recorrido del arbol en preorden. De momento imprime el arbol en preorden
  64.     /*Imprime un arbol por niveles con hojas indice.*/
  65.     void anchura(string * []);
  66.     /*Imprime un arbol por niveles. Usando el numbre de las variables.*/
  67.     void anchura(arbol*,string * []);
  68.     bool iguales(arbol * );
  69.     //void inorden(arbol *);
  70.     //void postorden(arbol *);
  71.  
  72.  
  73. };
(.cpp)
Código C++:
Ver original
  1. #include "arbol.h"
  2. #include <stdio.h>
  3. #include <iostream>
  4. #include <queue>
  5. #include <string>
  6. #include <stdlib.h>
  7.  
  8. using namespace std;
  9.  
  10. arbol::arbol(){
  11.  r = new nodetype;
  12.  r->der=NULL;
  13.  r->izq=NULL;
  14. }
  15.  
  16. arbol::~arbol()
  17. {
  18.     //destructor();
  19. }
  20.  
  21. void arbol::destructor()
  22. {
  23.     if(r->izq)
  24.         r->izq->destructor();
  25.     if(r->der)
  26.         r->der->destructor();
  27.     delete r;
  28. }
  29.  
  30. arbol * arbol::getArbolIzq(){
  31.     return r->izq;
  32. }
  33. arbol * arbol::getArbolDer(){
  34.     return r->der;
  35. }
  36.  
  37. void arbol::insertarIzq(arbol* nodo){
  38.     if(r==NULL){
  39.         printf("Error:El arbol está vacio");
  40.         exit (-1);
  41.     }else{
  42.         r->izq=nodo;
  43.     }
  44. }
  45.  
  46. void arbol::insertarDer(arbol* nodo){
  47.     if(r==NULL){
  48.         printf("Error:El arbol está vacio");
  49.         exit (-1);
  50.     }else{
  51.         r->der=nodo;
  52.     }
  53. }
  54.  
  55.  
  56.  
  57. void arbol::preorden()
  58. {
  59.  if(r)
  60.        preorden(this);
  61. }
  62.  
  63. int arbol::raiz(){
  64.     return r->raiz;
  65. }
  66. /*
  67. Variable: altura-izquierda
  68. Variable: altura-derecha
  69. Variable altura-resultado
  70.  
  71. altura-izquierda = 0.
  72. altura-derecha = 0.
  73.  
  74. si hay una rama derecha: altura-derecha = Altura(rama-derecha)
  75. si hay una rama izquierda: altura-izquierda = Altura(rama-izquierda)
  76. altura-resultado = max(altura-izquierda, altura-derecha) + 1
  77.  
  78. Devuelve altura-resultado.
  79.  
  80. Fin de Funcion*/
  81. int arbol::altura(){
  82.     int res=0;
  83.     int izq=0;
  84.     int der=0;
  85.     if (r->izq!=NULL){
  86.         izq=r->izq->altura();
  87.     }
  88.     if(r->der!=NULL){
  89.         der=r->der->altura();
  90.     }
  91.     res=max(izq,der)+1;
  92.     return res;
  93. }
  94. void arbol::preorden(arbol *ar)
  95. {
  96.  if(ar!=NULL)
  97.  {
  98.      for (int i = 0; i < (ar->altura())/2; i++)
  99.      {
  100.          cout<<"\t";
  101.      }
  102.   cout<<ar->r->raiz<<endl;
  103.   preorden(ar->r->izq);
  104.   preorden(ar->r->der);
  105.  }
  106. }
  107. void arbol::anchura(string * arCodif []){
  108.     if (r){
  109.         anchura(this,arCodif);
  110.     }
  111.  
  112. }

Si alguien pudiera echarme una mano se lo agradecería, ya que estoy bastante agobiado con este tema. Saludos.

Última edición por efdarcy09; 01/04/2013 a las 20:57

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.