OOP Using C++ — MCQ Practice

Hindi aur English dono mein practice karo — click karo answer check karne ke liye.

📚 94 Questions 🌐 Hindi + English ✅ Free
भाषा / Language:
94 questions

Question 16

EN + हिं
GB What is the output: class A{public: virtual void f(){cout<<'A';}}; class B:public A{public: void f()final{cout<<'B';}}; class C:public B{public: void f(){cout<<'C';}}; A*p=new C; p->f();
IN आउटपुट क्या है: क्लास ए {पब्लिक: वर्चुअल शून्य एफ() {काउट
A
B बी
C सी
Compile error संकलन त्रुटि
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) B::f() is final; C cannot override it. Compile error.
व्याख्या (हिन्दी) B::f() अंतिम है; C इसे ओवरराइड नहीं कर सकता. संकलन त्रुटि.
🎯 Exam Perspective
OOP Using C++ ("Polymorphism" sub-topic) के इस प्रश्न को कई प्रतियोगी परीक्षाओं जैसे UPSC, SSC, Banking और Police भर्ती में repeat होते देखा गया है। Concept clarity के लिए explanation section जरूर पढ़ें।

Question 17

EN + हिं
GB What is the output: class A{public: virtual void f(){cout<<1;} virtual void f(int){cout<<2;}}; class B:public A{public: void f()override{cout<<3;}}; B b; b.f(5);
IN आउटपुट क्या है: क्लास ए {पब्लिक: वर्चुअल शून्य एफ() {काउट
2 2
3 3
Compile error संकलन त्रुटि
Undefined अपरिभाषित
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) B::f() hides all A::f overloads (name hiding). b.f(5) cannot find f(int) in B without using declaration. Compile error.
व्याख्या (हिन्दी) B::f() hides all A::f overloads (name hiding). b.f(5) घोषणा का उपयोग किए बिना B में f(int) नहीं ढूंढ सकता। संकलन त्रुटि.
🎯 Exam Perspective
यह सवाल OOP Using C++ ("Polymorphism" sub-topic) category का है, और Railway, SSC, Banking और Defence परीक्षाओं के exam pattern में इस तरह के questions common हैं। Answer choose करने के बाद दिया गया explanation जरूर पढ़ें।

Question 18

EN + हिं
GB What is the output: class A{public: virtual void f(){cout<<'A';} ~A()=default;}; class B:public A{}; B b; b.f();
IN आउटपुट क्या है: क्लास ए {पब्लिक: वर्चुअल शून्य एफ() {काउट
A
B बी
Compile error संकलन त्रुटि
Undefined अपरिभाषित
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) B does not override f(), so A::f() is inherited. b.f() calls A::f(). Output: A.
व्याख्या (हिन्दी) B, f() को ओवरराइड नहीं करता है, इसलिए A::f() विरासत में मिला है। b.f() A::f() को कॉल करता है। आउटपुट: ए.
🎯 Exam Perspective
यह प्रश्न OOP Using C++ ("Polymorphism" sub-topic) की तैयारी करने वाले अभ्यर्थियों के लिए उपयोगी है। इस तरह के प्रश्न अक्सर SSC, Railway, Banking और State PCS जैसी परीक्षाओं में पूछे जाते रहे हैं, इसलिए concept और explanation दोनों को ध्यान से समझें, सिर्फ उत्तर याद न करें।

Question 19

EN + हिं
GB What is 'function hiding' in C++?
IN C++ में 'फंक्शन हिडिंग' क्या है?
Derived class function with same name hides all base class overloads समान नाम वाला व्युत्पन्न क्लास फ़ंक्शन सभी बेस क्लास ओवरलोड को छुपाता है
Virtual function override वर्चुअल फ़ंक्शन ओवरराइड
Private function access निजी फ़ंक्शन पहुंच
Function deletion फ़ंक्शन विलोपन
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Name hiding: if a derived class declares a function with the same name as base (even different signature), all base overloads are hidden.
व्याख्या (हिन्दी) नाम छिपाना: यदि कोई व्युत्पन्न वर्ग किसी फ़ंक्शन को आधार के समान नाम (यहां तक ​​​​कि अलग हस्ताक्षर) के साथ घोषित करता है, तो सभी आधार ओवरलोड छुपाए जाते हैं।
🎯 Exam Perspective
OOP Using C++ ("Polymorphism" sub-topic) से जुड़ा यह सवाल उन students के लिए काम का है जो SSC CGL, IBPS, RRB और State-level परीक्षाओं की तैयारी कर रहे हैं। बेहतर होगा कि explanation पढ़कर concept clear करें, ताकि exam में similar प्रश्न आने पर confusion न हो।

Question 20

EN + हिं
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 आउटपुट क्या है: क्लास ए {पब्लिक: वर्चुअल शून्य एफ() {काउट
UB: A's dtor called only यूबी: ए के डीटोर को ही बुलाया गया है
B,C dtors also called बी,सी डीटोर भी बुलाए गए
Compile error संकलन त्रुटि
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.
व्याख्या (हिन्दी) ए में वर्चुअल डिस्ट्रक्टर के बिना, सी से ए* को हटाना अपरिभाषित व्यवहार है; केवल ए के विध्वंसक को ही बुलाया जा सकता है।
🎯 Exam Perspective
UPSC, SSC, Banking और Police भर्ती जैसी परीक्षाओं में OOP Using C++ ("Polymorphism" sub-topic) से सवाल अक्सर पूछे जाते हैं। इसलिए सिर्फ answer रटने के बजाय, नीचे दी गई explanation को ध्यान से पढ़ें और concept समझें।

Question 21

EN + हिं
GB What is typeid() used for?
IN टाइपआईडी() का उपयोग किसके लिए किया जाता है?
Getting runtime type information रनटाइम प्रकार की जानकारी प्राप्त करना
Type conversion रूपांतरण टाइप करें
sizeof alternative विकल्प का आकार
Template specialization trigger टेम्पलेट विशेषज्ञता ट्रिगर
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) typeid(expr) returns a std::type_info object representing the runtime type; requires at least one virtual function for polymorphic types.
व्याख्या (हिन्दी) typeid(expr) रनटाइम प्रकार का प्रतिनिधित्व करने वाला एक std::type_info ऑब्जेक्ट लौटाता है; बहुरूपी प्रकारों के लिए कम से कम एक वर्चुअल फ़ंक्शन की आवश्यकता होती है।
🎯 Exam Perspective
अगर आप Railway, SSC, Banking और Defence परीक्षाओं की तैयारी कर रहे हैं, तो OOP Using C++ ("Polymorphism" sub-topic) का यह topic आपके लिए महत्वपूर्ण है। Exam में accuracy बढ़ाने के लिए हर सवाल की explanation जरूर पढ़ें।

Question 22

EN + हिं
GB What is the output: class A{public: virtual void f(){cout<<1;}}; class B:public A{public: void f()override{cout<<2;}}; A *p=new B; static_cast(p)->A::f();
IN आउटपुट क्या है: क्लास ए {पब्लिक: वर्चुअल शून्य एफ() {काउट
1 1
2 2
Undefined अपरिभाषित
Compile error संकलन त्रुटि
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Explicit A::f() bypasses virtual dispatch and calls A's version directly. Output: 1.
व्याख्या (हिन्दी) स्पष्ट A::f() वर्चुअल प्रेषण को बायपास करता है और सीधे A के संस्करण को कॉल करता है। आउटपुट: 1.
🎯 Exam Perspective
OOP Using C++ ("Polymorphism" sub-topic) के इस प्रश्न को कई प्रतियोगी परीक्षाओं जैसे SSC, Railway, Banking और State PCS में repeat होते देखा गया है। Concept clarity के लिए explanation section जरूर पढ़ें।

Question 23

EN + हिं
GB What is 'open/closed principle' relation to polymorphism?
IN बहुरूपता से 'खुला/बंद सिद्धांत' क्या संबंध है?
Polymorphism enables extending behavior without modifying existing code बहुरूपता मौजूदा कोड को संशोधित किए बिना व्यवहार को विस्तारित करने में सक्षम बनाता है
Requires multiple inheritance एकाधिक वंशानुक्रम की आवश्यकता है
Template metaprogramming only केवल टेम्प्लेट मेटाप्रोग्रामिंग
Runtime type checking रनटाइम प्रकार की जाँच
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Polymorphism (especially virtual functions) supports the open/closed principle: open for extension, closed for modification.
व्याख्या (हिन्दी) बहुरूपता (विशेषकर आभासी कार्य) खुले/बंद सिद्धांत का समर्थन करता है: विस्तार के लिए खुला, संशोधन के लिए बंद।
🎯 Exam Perspective
यह सवाल OOP Using C++ ("Polymorphism" sub-topic) category का है, और SSC CGL, IBPS, RRB और State-level परीक्षाओं के exam pattern में इस तरह के questions common हैं। Answer choose करने के बाद दिया गया explanation जरूर पढ़ें।

Question 24

EN + हिं
GB What is the output: class A{public: int x; virtual void f(){}}; class B:public A{}; sizeof(A), sizeof(B) on 64-bit?
IN आउटपुट क्या है: क्लास ए {सार्वजनिक: int x; आभासी शून्य f(){}}; कक्षा बी:सार्वजनिक ए{}; 64-बिट पर sizeof(A), sizeof(B)?
8 and 8 8 और 8
16 and 16 16 और 16
4 and 4 4 और 4
8 and 16 8 और 16
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) A has int x (4 bytes) + vptr (8 bytes on 64-bit) = 16 (with alignment). B inherits same layout. Both 16.
व्याख्या (हिन्दी) A में int x (4 बाइट्स) + vptr (64-बिट पर 8 बाइट्स) = 16 (संरेखण के साथ) है। बी को वही लेआउट विरासत में मिला है। दोनों 16.
🎯 Exam Perspective
यह प्रश्न OOP Using C++ ("Polymorphism" sub-topic) की तैयारी करने वाले अभ्यर्थियों के लिए उपयोगी है। इस तरह के प्रश्न अक्सर UPSC, SSC, Banking और Police भर्ती जैसी परीक्षाओं में पूछे जाते रहे हैं, इसलिए concept और explanation दोनों को ध्यान से समझें, सिर्फ उत्तर याद न करें।

Question 25

EN + हिं
GB What is 'dynamic dispatch overhead' in C++?
IN C++ में 'डायनामिक डिस्पैच ओवरहेड' क्या है?
Indirect function call through vtable pointer वीटेबल पॉइंटर के माध्यम से अप्रत्यक्ष फ़ंक्शन कॉल
Virtual function compilation वर्चुअल फ़ंक्शन संकलन
Runtime type checking cost रनटाइम प्रकार की जाँच लागत
Exception handling overhead ओवरहेड अपवाद हैंडलिंग
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Virtual function call requires dereferencing vptr, looking up vtable, then calling — indirect call with potential cache miss overhead.
व्याख्या (हिन्दी) वर्चुअल फ़ंक्शन कॉल के लिए वीपीटीआर को डीरेफ़रेंसिंग, वीटेबल को देखना, फिर कॉलिंग की आवश्यकता होती है - संभावित कैश मिस ओवरहेड के साथ अप्रत्यक्ष कॉल।
🎯 Exam Perspective
OOP Using C++ ("Polymorphism" sub-topic) से जुड़ा यह सवाल उन students के लिए काम का है जो Railway, SSC, Banking और Defence परीक्षाओं की तैयारी कर रहे हैं। बेहतर होगा कि explanation पढ़कर concept clear करें, ताकि exam में similar प्रश्न आने पर confusion न हो।

Question 26

EN + हिं
GB What is the output: class A{public: virtual void f()=0; virtual ~A()=default;}; class B:public A{public: void f(){cout<<'B';}}; A *p=new B; p->f(); delete p;
IN आउटपुट क्या है: क्लास ए{पब्लिक: वर्चुअल शून्य f()=0; आभासी ~ए()=डिफ़ॉल्ट;}; कक्षा बी: सार्वजनिक ए {सार्वजनिक: शून्य एफ() {काउट
B बी
Compile error संकलन त्रुटि
Undefined अपरिभाषित
Nothing कुछ नहीं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) B implements f(). p->f() calls B::f(). Output: B.
व्याख्या (हिन्दी) बी एफ() लागू करता है। p->f() B::f() को कॉल करता है। आउटपुट: बी.
🎯 Exam Perspective
SSC, Railway, Banking और State PCS जैसी परीक्षाओं में OOP Using C++ ("Polymorphism" sub-topic) से सवाल अक्सर पूछे जाते हैं। इसलिए सिर्फ answer रटने के बजाय, नीचे दी गई explanation को ध्यान से पढ़ें और concept समझें।

Question 27

EN + हिं
GB What is 'override' specifier?
IN 'ओवरराइड' विनिर्देशक क्या है?
Checks at compile time that function actually overrides a virtual संकलन समय पर जाँचता है कि फ़ंक्शन वास्तव में वर्चुअल को ओवरराइड करता है
Makes function virtual फ़ंक्शन को वर्चुअल बनाता है
Prevents further overriding आगे ओवरराइडिंग को रोकता है
Marks function for optimization अनुकूलन के लिए मार्क्स कार्य करते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) override tells the compiler to verify the function is actually overriding a base virtual; prevents silent bugs from signature mismatches.
व्याख्या (हिन्दी) ओवरराइड कंपाइलर को यह सत्यापित करने के लिए कहता है कि फ़ंक्शन वास्तव में बेस वर्चुअल को ओवरराइड कर रहा है; हस्ताक्षर बेमेल होने से साइलेंट बग को रोकता है।
🎯 Exam Perspective
अगर आप SSC CGL, IBPS, RRB और State-level परीक्षाओं की तैयारी कर रहे हैं, तो OOP Using C++ ("Polymorphism" sub-topic) का यह topic आपके लिए महत्वपूर्ण है। Exam में accuracy बढ़ाने के लिए हर सवाल की explanation जरूर पढ़ें।

Question 28

EN + हिं
GB What is 'polymorphic type' in C++?
IN C++ में 'बहुरूपी प्रकार' क्या है?
Class with at least one virtual function कम से कम एक वर्चुअल फ़ंक्शन वाली कक्षा
Abstract class सार वर्ग
Class with multiple inheritance एकाधिक वंशानुक्रम वाला वर्ग
Template class टेम्पलेट वर्ग
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) A polymorphic type has at least one virtual function; RTTI and dynamic_cast work only with polymorphic types.
व्याख्या (हिन्दी) एक बहुरूपी प्रकार में कम से कम एक आभासी कार्य होता है; आरटीटीआई और डायनेमिक_कास्ट केवल बहुरूपी प्रकारों के साथ काम करते हैं।
🎯 Exam Perspective
OOP Using C++ ("Polymorphism" sub-topic) के इस प्रश्न को कई प्रतियोगी परीक्षाओं जैसे UPSC, SSC, Banking और Police भर्ती में repeat होते देखा गया है। Concept clarity के लिए explanation section जरूर पढ़ें।

Question 29

EN + हिं
GB What is the output: class A{public: virtual void f(){cout<<1;}}; class B:public A{public: void f()override{cout<<2;}}; B b; A&r=b; r.A::f();
IN आउटपुट क्या है: क्लास ए {पब्लिक: वर्चुअल शून्य एफ() {काउट
1 1
2 2
Undefined अपरिभाषित
Compile error संकलन त्रुटि
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) r.A::f() explicitly calls A's f(), bypassing virtual dispatch. Output: 1.
व्याख्या (हिन्दी) r.A::f() वर्चुअल डिस्पैच को दरकिनार करते हुए स्पष्ट रूप से A के f() को कॉल करता है। आउटपुट: 1.
🎯 Exam Perspective
यह सवाल OOP Using C++ ("Polymorphism" sub-topic) category का है, और Railway, SSC, Banking और Defence परीक्षाओं के exam pattern में इस तरह के questions common हैं। Answer choose करने के बाद दिया गया explanation जरूर पढ़ें।

Question 30

EN + हिं
GB What is the output: class A{public:virtual int f(){return 1;}}; class B:public A{public:int f()override{return 2;}}; A *p=new B; cout<f();
IN आउटपुट क्या है: क्लास ए{पब्लिक:वर्चुअल इंट एफ(){रिटर्न 1;}}; कक्षा बी:सार्वजनिक ए{सार्वजनिक:int f()ओवरराइड{वापसी 2;}}; ए *पी=नया बी; अदालत
2 2
1 1
Compile error संकलन त्रुटि
Undefined अपरिभाषित
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) B::f(). Output: 2.
व्याख्या (हिन्दी) बी::एफ(). आउटपुट: 2.
🎯 Exam Perspective
यह प्रश्न OOP Using C++ ("Polymorphism" sub-topic) की तैयारी करने वाले अभ्यर्थियों के लिए उपयोगी है। इस तरह के प्रश्न अक्सर UPSC, SSC, Banking और Police भर्ती जैसी परीक्षाओं में पूछे जाते रहे हैं, इसलिए concept और explanation दोनों को ध्यान से समझें, सिर्फ उत्तर याद न करें।