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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con #includes
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con #includes  (Leído 4,274 veces)
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Problema con #includes
« Respuesta #10 en: 5 Junio 2013, 10:47 am »

Vale lo he estado probado y tienes razón.

El problema es el orden de la cabeceras, ambas clases se complementan pero al incluirse forman un bucle recursivo.

He conseguido compilar lo siguiente:

A.hpp

Código
  1. #ifndef A_H
  2. #define A_H
  3.  
  4. class A
  5. {
  6.    public:
  7.        A(int);
  8.    protected:
  9.    private:
  10.        int num;
  11.        B* Algo;
  12. };
  13.  
  14. #endif // A_H
  15.  

A.cpp

Código
  1. #include "B.h"
  2. #include "A.h"
  3.  
  4. A::A(int n)
  5. {
  6.    num = n;
  7.    Algo = new B;
  8. }
  9.  

B.hpp
Código
  1. #ifndef B_H
  2. #define B_H
  3. class A;
  4.  
  5. class B
  6. {
  7.    public:
  8.        B();
  9.    protected:
  10.    private:
  11.        int tonteria;
  12.        A* retornoA();
  13. };
  14.  
  15. #endif // B_H
  16.  

B.cpp
Código
  1. #include "B.h"
  2. #include "A.h"
  3.  
  4. B::B()
  5. {
  6.    tonteria = 2;
  7. }
  8.  
  9. A* B::retornoA(){
  10. A *a = new A(10);
  11. return a;
  12. }
  13.  

Main.cpp

Código
  1. #include <iostream>
  2. #include "B.h"
  3. #include "A.h"
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    cout << "Hello world!" << endl;
  9.    return 0;
  10. }
  11.  

Hay otro método que proponen aquí:
http://www.daniweb.com/software-development/cpp/threads/20494/c-beginner-include-recursion-problem


« Última modificación: 5 Junio 2013, 10:51 am por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Problema con #includes
« Respuesta #11 en: 5 Junio 2013, 18:12 pm »

Gracias por toda la ayuda que me brindastes ya lo he solucionado!!.

Basándome en lo ultimo que publicaste, se que hay que separar todo en *.hpp y *cpp pero no lo he hecho así ya que llega tornarse enorme para buscar un problema, también la solución que me brindaste no es la que andaba buscando. la de en el main tener que incluir las dos librerías:

Código
  1. #include "B.h"    // Esto es lo que estaba evitando
  2. #include "A.h"    // Esto es lo que estaba evitando
  3.  
  4. int main(){
  5.    return 0;
  6. }
  7.  

Y esta es la solución:

A.hpp:
Código
  1. #include "B.hpp"
  2.  
  3. #ifndef _A_
  4. #define _A_
  5.  
  6. class A{
  7. private:
  8. B* b;
  9. public:
  10. A(int);
  11. A(B*);
  12. };
  13.  
  14. A::A(int algo){
  15. b = new B(algo);
  16. }
  17.  
  18. A::A(B *pB){
  19. b = pB;
  20. }
  21.  
  22. #endif
  23.  

B.hpp:
Código
  1. #ifndef _B_
  2. #define _B_
  3.  
  4. class A;
  5.  
  6. class B{
  7. private:
  8. int dato;
  9. public:
  10. B(int);
  11. A* retornoA();
  12. };
  13.  
  14. B::B(int algo){
  15. dato = algo;
  16. }
  17.  
  18. #include "A.hpp"
  19. A* B::retornoA(){
  20. A *a = new A(10);
  21. return a;
  22. }
  23.  
  24. #endif
  25.  

Y en el main incluyo solo a A.hpp
Código
  1. #include "A.hpp"
  2.  
  3. int main(){
  4. return 0;
  5. }
  6.  

amchacon muchas gracias por ayudarme, fuiste de muy gran ayuda, de toda la gente que ayudo(nadie mas), espero que mi solución te sea de feedback,
Grafcias


En línea

<<<--Basura-->>>
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No funcionan los includes???
PHP
Luisango 7 2,247 Último mensaje 13 Diciembre 2006, 21:21 pm
por Luisango
Ayuda con PHP e includes
PHP
Spider-Net 0 1,384 Último mensaje 13 Septiembre 2007, 22:02 pm
por Spider-Net
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines