निम्नलिखित अच्छी तरह परिभाषित है?कन्स्ट्रक्टर प्रारंभिक सूची में परिपत्र निर्भरता
class A;
class B;
// define A, which takes B& in constructor
// define B, which takes A& in constructor
class C
{
A a;
B b;
public:
C() : a(b), b(a) { /* stuff with a and b */ }
}
ideone.com पर पूरा उदाहरण।
क्या यह सुरक्षित/अच्छी तरह परिभाषित है जब तक कि A
और B
के लिए कन्स्ट्रक्टर उन संदर्भों के साथ कुछ भी नहीं करते हैं?
डाउनवोट क्यों? मुझे बताएं कि मैं सवाल कैसे सुधार सकता हूं। – Claudiu
मुझे नहीं लगता कि कंपाइलर आपको 'ए (बी)' करने की अनुमति देता है क्योंकि जब 'ए' प्रारंभ किया जा रहा है,' बी' अभी तक शुरू नहीं हुआ है। – user3528438
@ user3528438: यह निश्चित रूप से करता है, आदर्श उदाहरण संकलित करता है और चलता है। लेकिन ऐसा इसलिए है क्योंकि मैं भाग्यशाली हूं या क्योंकि यह मानक में अच्छी तरह से परिभाषित है? – Claudiu