निम्न कोड में, नाशक, दो बार कहा जाता है, जबकि निर्माता केवल एक बार कहा जाता है:विनाशक को कन्स्ट्रक्टर से अधिक क्यों कहा जाता है?
enum TFoo
{
VAL1,
VAL2
};
class CFoo
{
public:
TFoo mf;
CFoo()
{
cout<<"hi c'tor1\n";
//mf = f;
}
CFoo(TFoo f)
{
cout<<"hi c'tor2\n";
mf = f;
}
CFoo(TFoo &f)
{
cout<<"hi c'tor3\n";
mf = f;
}
~CFoo()
{
cout<<"bye\n";
}
};
int main()
{
vector<CFoo> v;
//v.assign(1, VAL1);
v.push_back(VAL1);
}
कोड आउटपुट:
hi c'tor2 bye bye
मैं एक ऐसी ही question, पाया जो उल्लिखित प्रति रचनाकारों, इसलिए मैंने उन्हें जोड़ा, लेकिन एक ही परिणाम के साथ। लाइन //v.assign(1, VAL1);
को असम्बद्ध करने से कुछ भी नहीं बदलेगा।
आपको कॉपी कन्स्ट्रक्टर 'सीएफयू (कॉन्स सीएफयू और)' याद आती है। – Jarod42