Question

1.
2.
3.
4.
Answer (Detailed Solution Below)

Option 4 : B

Advertisement

Detailed Solution

सही उत्तर B है।

Key Points
Helpful?
PrepSnapprepsnap.in • Part -A

Question:

Trace the C++ program below and state what it prints. #include <iostream> using namespace std; class A{ public: virtual void f(){ cout<<"A"; } }; class B : public A{ public: void f(){ cout<<"B"; } }; int main(){ A* p = new B(); p->f(); delete p; return 0; } / नीचे दिए गए C++ प्रोग्राम का अनुसरण करके बताइए कि वह क्या प्रिंट करता है। #include <iostream> using namespace std; class A{ public: virtual void f(){ cout<<"A"; } }; class B : public A{ public: void f(){ cout<<"B"; } }; int main(){ A* p = new B(); p->f(); delete p; return 0; }

1.
A
2.
compile-time error / कंपाइल-टाइम त्रुटि
3.
runtime error / रनटाइम त्रुटि
4.
B

Correct Answer: B

Because f() is declared virtual in A, the call through the base-class pointer is resolved at run time to the most-derived override, so B::f() runs and prints "B". / चूँकि f() A में virtual घोषित है, बेस-क्लास पॉइंटर से कॉल रन टाइम पर सबसे-व्युत्पन्न ओवरराइड से जुड़ता है, अतः B::f() चलता है और "B" प्रिंट होता है।

Downloaded from PrepSnap (prepsnap.in)