331
GB
What is the output: class A{public: virtual void f(){cout<<'A';}}; class B:public A{public: virtual void f(){cout<<'B';}}; class C:public B{public: virtual void f(){cout<<'C';}}; A*p=new C; delete p;
IN
आउटपुट क्या है: क्लास ए {पब्लिक: वर्चुअल शून्य एफ() {काउट
A
UB: A's dtor called only
यूबी: ए के डीटोर को ही बुलाया गया है
B
B,C dtors also called
बी,सी डीटोर भी बुलाए गए
C
Compile error
संकलन त्रुटि
D
Nothing
कुछ नहीं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English)
Without virtual destructor in A, deleting C through A* is undefined behavior; only A's destructor may be called.
व्याख्या (हिन्दी)
ए में वर्चुअल डिस्ट्रक्टर के बिना, सी से ए* को हटाना अपरिभाषित व्यवहार है; केवल ए के विध्वंसक को ही बुलाया जा सकता है।