Mi Problema:declaración hacia adelante y espacios de nombres (C++)
consiguió dos clases, las clases A y B, así que me dieron A.h y a.cpp y B.h y B.cpp. Un necesita saber B y B necesita saber A. Lo resuelto de la siguiente manera (No sé por qué tiene que ser tan ...)
Ah:
#include "B.h"
class A{ ...
A. CPP:
#include "A.h"
Bh:
#include "A.h"
class A; // forward declaration
class B { ...
B.cpp:
#include "B.h"
Utilicé una declaración directa y funciona.
El problema es que ambas clases deben estar en el espacio de nombres "ui". O por lo menos creo que este es el significado:
A.h:
#include "B.h"
namespace ui{
class A;
}
class A{ ...
B.h:
#include "A.h"
namespace ui{
class B;
}
class B{ ...
Esto ya no funciona. ¿Qué tengo que hacer ahora para que funcione nuevamente con el espacio de nombres y la declaración de reenvío?
Ambos tienen que estar en este espacio de nombres. Estoy trabajando con Qt y las líneas "namespace ui {" etc. son necesarias. Y ambas clases necesitan conocerse. Ya he intentado sólo para hacer esto:
namespace ui{
class A;
class B;
}
en ambas cabeceras, pero esto no funciona ...
Por cierto: Todo encabezado y archivos también tiene la "ifndef" -Mecanismo.
¿Qué significa "Esto no funciona más." Por favor, publique los errores exactos del compilador/enlazador – fredoverflow