ओह सी ++ गुरु, मैं आपकी बुद्धि की तलाश करता हूं। मेरे लिए standardese बोलते हैं और मेरे अगर सी ++ की गारंटी देता है बताते हैं कि निम्नलिखित कार्यक्रम:सदस्य कन्स्ट्रक्टर और विनाशक का आदेश
#include <iostream>
using namespace std;
struct A
{
A() { cout << "A::A" << endl; }
~A() { cout << "A::~" << endl; }
};
struct B
{
B() { cout << "B::B" << endl; }
~B() { cout << "B::~" << endl; }
};
struct C
{
C() { cout << "C::C" << endl; }
~C() { cout << "C::~" << endl; }
};
struct Aggregate
{
A a;
B b;
C c;
};
int main()
{
Aggregate a;
return 0;
}
हमेशा
A::A
B::B
C::C
C::~
B::~
A::~
दूसरे शब्दों में उत्पादन करेगा, सदस्यों घोषणा के आदेश से प्रारंभ और रिवर्स में नष्ट हो जाने की गारंटी है आदेश?
कक्षाएं बड़े और अपरिपक्व होने पर सूक्ष्म बग का एक आम कारण है। जब आपके पास 50 डेटा सदस्य होते हैं, और उनमें से बहुत से कन्स्ट्रक्टर इंटियालाइज़र सूची में प्रारंभ होते हैं, तो निर्माण के क्रम को प्रारंभ करना सूची में ऑर्डर करना आसान हो सकता है। आखिरकार, कोड लेखकों ने सूची को सावधानी से आदेश दिया है ... है ना? – Permaquid