मेरे समस्या:आगे घोषणा और नेमस्पेस (C++)
गॉट दो वर्गों, वर्ग ए और बी, तो मैं A.h और A.cpp और B.h और B.cpp मिला है। एक बी के लिए ज़रूरी है और बी ए मैं इसे नीचे दिए तरीक़े से हल के लिए ज़रूरी है (मैं नहीं जानता कि क्यों यह इतना हो गया है ...)
आह:
#include "B.h"
class A{ ...
ए सीपीपी:
#include "A.h"
Bh:
#include "A.h"
class A; // forward declaration
class B { ...
B.cpp:
#include "B.h"
मैंने एक आगे की घोषणा का उपयोग किया और यह काम करता है।
समस्या यह है कि दोनों वर्गों को नामस्थान "ui" में होना चाहिए। या कम से कम मुझे लगता है कि यह अर्थ है:
A.h:
#include "B.h"
namespace ui{
class A;
}
class A{ ...
B.h:
#include "A.h"
namespace ui{
class B;
}
class B{ ...
यह अब और काम नहीं करता। नामस्थान और आगे की घोषणा के साथ इसे फिर से काम करने के लिए मुझे अब क्या करना है?
दोनों को इस नामस्थान में होना होगा। मैं क्यूटी के साथ काम कर रहा हूं और लाइनों "नेमस्पेस ui {" इत्यादि की आवश्यकता है। और दोनों वर्गों को एक दूसरे को जानने की जरूरत है। मैं पहले से ही करने की कोशिश की तो बस इस बनाने के लिए:
namespace ui{
class A;
class B;
}
दोनों हेडर में
, लेकिन यह काम नहीं करता ...
Btw: सभी हैडर-फाइल्स भी "ifndef" -mechanism मिला है।
"यह अब और काम नहीं करता है।" मतलब? कृपया सटीक कंपाइलर/लिंकर त्रुटियां पोस्ट करें। – fredoverflow