Моя проблема:
Получили два класса, класс A и B, поэтому я получил A.h и A.cpp и B.h и B.cpp. Необходимо знать, что B и B должны знать A. Я решил это следующим образом (я не знаю, почему это должно быть так...)
хиджры:
#include "B.h"
class A{ ...
a.cpp:
#include "A.h"
B.h:
#include "A.h"
class A; // forward declaration
class B { ...
B.cpp:
#include "B.h"
Я использовал одно прямое объявление, и оно работает.
Проблема заключается в том, что оба класса должны находиться в пространстве имен "ui". Или, по крайней мере, я думаю, что это значение:
хиджры:
#include "B.h"
namespace ui{
class A;
}
class A{ ...
B.h:
#include "A.h"
namespace ui{
class B;
}
class B{ ...
Это больше не работает. Что мне теперь нужно сделать, чтобы он снова работал с пространством имен и декларацией?
Оба должны находиться в этом пространстве имен. Я работаю с Qt, и нужны строки "namespace ui" и т.д. И оба класса должны знать друг друга. Я уже пробовал просто сделать это:
namespace ui{
class A;
class B;
}
в обоих заголовках, но это не работает...
Btw: Все заголовки также получили "ifndef" -механизм.