यहाँ http://www.parashift.com/c++-faq-lite/multiple-inheritance.html अनुभाग [25.14] कहते हैंविरासत पदानुक्रम: निर्माता और नाशक निष्पादन अनुक्रम
बहुत पहले कंस्ट्रक्टर्स निष्पादित करने के लिए पदानुक्रम में कहीं भी आभासी आधार वर्ग हैं।
मैं निम्नलिखित प्रोग्राम का उपयोग यह सत्यापित करने का प्रयास:
A (pure virtual)
|
B
|
C
(virtual)/ \ (virtual)
E D
\ /
F
|
G (pure virtual)
|
H
प्रत्येक वर्ग के एक c'tor और आभासी डी 'टो है। आउटपुट निम्नानुसार है:
A
B
C
E
D
F
G
H
~H
~G
~F
~D
~E
~C
~B
~A
Press any key to continue . . .
लेकिन उद्धरण वर्चुअल बेस क्लास कन्स्ट्रक्टर के अनुसार पहले निष्पादित किया जाना चाहिए।
मैंने क्या गलत किया?
संपादित करें: मेरे प्रश्न को साफ़ करने के लिए, मेरी समझ के अनुसार इस व्यवहार के साथ कुछ भी नहीं है कि बेस क्लास आभासी है या नहीं। लेकिन उद्धरण वर्चुअल बेस क्लास पर जोर देता है। क्या मैं स्पष्ट हूं या वहां कुछ ख़राब हूँ?
धन्यवाद।
कृपया उस कोड को आपूर्ति करें जिसका उपयोग आप अधिक सटीक उत्तरों के लिए कर रहे थे। – amit
@amit, यहां कोड के लिए कोई आवश्यकता नहीं है। इस व्यवहार की उम्मीद है ... – eran