c++ - What happened to derived class destructor? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 15 उत्तर

यहाँ कोड है जिसके लिए मैं आउटपुट को समझने की कोशिश कर रहा हूं।

  वर्ग ए {सार्वजनिक: ए (); & Lt; endl; & amp; lt; & lt; ए & amp; lt; & quot; एक से बुलाए गए डिस्ट्रिक्टर & quot; & lt; एंडल;} ए (इंट एक्स): जेड (एक्स) {कॉट & एलटी; & lt; }; निजी: इंट ज़ेड; }; वर्ग बी: सार्वजनिक ए {सार्वजनिक: बी (); (बी) (बी) (बी) (cout & lt; & lt; & lt; & lt; & lt; एंडएल;} बी (एक्सएक्स): ए (एक्स), वाई (एक्स) {कॉट & & LT; endl; }; निजी: इंट वाई; }; Int main () {A * a = नया B (10); हटाएं; वापसी 0; }  

जिसके लिए मुझे आउटपुट मिलता है

  एक निर्माता से बुलाए गए कन्स्ट्रक्टर जिसे ए से बुलाए गए बी डिस्ट्रक्टर से बुलाया जाता है  
< P> मेरा सवाल यह है, वर्ग बी के लिए डिस्ट्रक्टर को क्या हुआ? क्या ऑब्जेक्ट स्कीइसिंग का हिस्सा यहां है?

आपको सुपर क्लास के डिस्ट्रक्टर आभासी बनाने की जरूरत है:

<पूर्व> वर्ग ए {वर्चुअल ~ ए () {cout & lt; & lt; "डिस्ट्रिक्टर को ए से लिया गया" & lt; & lt; endl;}

Comments