मैं घोषणा और एक वर्ग के एक के अंदर एक वर्ग बी का उपयोग करें और ए
मैं एक तथ्य के लिए पता है बाहर बी को परिभाषित कि यह संभव है क्योंकि Bjarne Stroustrup
में इस का उपयोग करता है करने के लिए कोशिश कर रहा हूँ उनकी पुस्तक "द सी ++ प्रोग्रामिंग भाषा"
(पृष्ठ 2 9 3, उदाहरण के लिए स्ट्रिंग और एसईपी कक्षाएं)।सी ++ नेस्टेड कक्षाएं आगे घोषणा त्रुटि
tst.cpp: In constructor ‘A::A()’:
tst.cpp:5: error: invalid use of undefined type ‘struct A::B’
tst.cpp:3: error: forward declaration of ‘struct A::B’
मैं सी ++ Faq और closeset को देखने के लिए करने की कोशिश की:
तो इस कोड के अपने न्यूनतम टुकड़ा है कि समस्याओं
class A{
struct B; // forward declaration
B* c;
A() { c->i; }
};
struct A::B {
/*
* we define struct B like this becuase it
* was first declared in the namespace A
*/
int i;
};
int main() {
}
इस कोड जी ++ में निम्नलिखित संकलन त्रुटियों देता है का कारण बनता है मुझे here और here मिला लेकिन
वे मेरी स्थिति पर लागू नहीं होते हैं।
मैं यहां से read this भी हूं लेकिन यह मेरी समस्या को हल नहीं कर रहा है। इस
हाँ की परिभाषा के बाद 'इनलाइन' कीवर्ड का उपयोग करके इनलाइन के रूप में फ़ंक्शन को परिभाषित करें, जो काम करता है धन्यवाद :) – xxxxxxx
आपका स्वागत है! :-) –
बी घोषित होने के बाद निर्माता को परिभाषित किया गया है। बी परिभाषित होने के बाद इसे परिभाषित करने की आवश्यकता है। –