यहां हम कुछ महत्वपूर्ण C++ साक्षात्कार प्रश्न देखेंगे।
-
C और C++ में क्या अंतर हैं?
कुंजी | <वें शैली="पाठ्य-संरेखण:केंद्र;">सीवें> <वें शैली="पाठ्य-संरेखण:केंद्र;">सी++वें>||
---|---|---|
परिचय | C को डेनिस रिची ने 1969 के आसपास AT&T Bell Labs में विकसित किया था। | C++ को 1979 में Bjarne Stroustrup द्वारा विकसित किया गया था। |
भाषा का प्रकार | जैसा कि पहले बताया गया है कि C प्रक्रियात्मक प्रोग्रामिंग है। | दूसरी ओर, C++ प्रक्रियात्मक और वस्तु-उन्मुख प्रोग्रामिंग प्रतिमानों दोनों का समर्थन करता है। |
OOPs में समर्थन की सुविधा है | चूंकि सी ओओपी अवधारणा का समर्थन नहीं करता है, इसलिए इसमें बहुरूपता, एनकैप्सुलेशन और विरासत के लिए कोई समर्थन नहीं है। | C++ में बहुरूपता, एनकैप्सुलेशन और वंशानुक्रम के लिए समर्थन है क्योंकि यह एक वस्तु-उन्मुख प्रोग्रामिंग भाषा है |
डेटा सुरक्षा | चूंकि सी एनकैप्सुलेशन का समर्थन नहीं करता है, इसलिए डेटा एक स्वतंत्र इकाई के रूप में व्यवहार करता है और बाहरी कोड द्वारा हेरफेर किया जा सकता है। | दूसरी ओर C++ एनकैप्सुलेशन के मामले में यह सुनिश्चित करने के लिए डेटा को छुपाता है कि डेटा संरचनाओं और ऑपरेटरों का उपयोग इरादा के अनुसार किया जाता है। |
संचालित प्रकार | C सामान्य रूप से फ़ंक्शन-संचालित भाषा के रूप में जाना जाता है। | दूसरी ओर, C++ को ऑब्जेक्ट संचालित भाषा के रूप में जाना जाता है। |
सुविधा समर्थित | C फ़ंक्शन का समर्थन नहीं करता है और ऑपरेटर ओवरलोडिंग में नाम स्थान सुविधा और संदर्भ चर कार्यक्षमता भी नहीं है। | दूसरी ओर, C++ फंक्शन और ऑपरेटर ओवरलोडिंग दोनों का समर्थन करता है, इसमें नेमस्पेस फीचर और रेफरेंस वेरिएबल फंक्शनलिटी भी होती है। |
-
पॉइंटर्स और रेफरेंस में क्या अंतर हैं?
पॉइंटर्स और संदर्भों के बीच मुख्य अंतर हैं -
-
संदर्भों का उपयोग किसी मौजूदा चर को दूसरे नाम से संदर्भित करने के लिए किया जाता है जबकि पॉइंटर्स का उपयोग चर के पते को संग्रहीत करने के लिए किया जाता है।
-
संदर्भों में एक शून्य मान असाइन नहीं किया जा सकता है लेकिन पॉइंटर कर सकता है।
-
एक संदर्भ चर को पास बाय वैल्यू द्वारा संदर्भित किया जा सकता है जबकि एक पॉइंटर को संदर्भित किया जा सकता है लेकिन संदर्भ द्वारा पास किया जा सकता है।
-
घोषणा पर एक संदर्भ प्रारंभ किया जाना चाहिए, जबकि सूचक के मामले में यह आवश्यक नहीं है।
-
एक संदर्भ मूल चर के साथ समान मेमोरी पता साझा करता है, लेकिन स्टैक पर कुछ स्थान भी लेता है जबकि एक पॉइंटर का अपना मेमोरी पता और स्टैक पर आकार होता है
-
C++ में वर्चुअल फंक्शन क्या है?
सी ++ में वर्चुअल फ़ंक्शंस बेस क्लास पॉइंटर्स की सूची बनाने के लिए उपयोग करते हैं और किसी भी व्युत्पन्न वर्ग के कॉल विधियों को व्युत्पन्न क्लास ऑब्जेक्ट के प्रकार को जाने बिना भी उपयोग करते हैं। वर्चुअल फ़ंक्शंस को रनटाइम पर देर से हल किया जाता है।
यदि आधार वर्ग में एक वर्चुअल फ़ंक्शन को एक बार सदस्य फ़ंक्शन के रूप में घोषित किया जाता है, तो यह उस बेस क्लास से प्राप्त प्रत्येक वर्ग में वर्चुअल हो जाता है। इसलिए, वर्चुअल बेस क्लास फ़ंक्शन के पुनर्परिभाषित संस्करणों की घोषणा करते समय व्युत्पन्न वर्ग में वर्चुअल कीवर्ड का उपयोग आवश्यक नहीं है।
उदाहरण
#include<iostream> using namespace std; class B { public: virtual void s() { cout<<" In Base \n"; } }; class D: public B { public: void s() { cout<<"In Derived \n"; } }; int main(void) { D d; // An object of class D B *b= &d; // A pointer of type B* pointing to d b->s(); // prints"D::s() called" return 0; }
आउटपुट
In Derived
C++ में यह सूचक क्या है?
C++ में प्रत्येक वस्तु के पास इस सूचक नामक एक महत्वपूर्ण सूचक के माध्यम से अपने स्वयं के पते तक पहुंच होती है। यह सूचक सभी सदस्य कार्यों के लिए एक अंतर्निहित पैरामीटर है। इसलिए, किसी सदस्य फ़ंक्शन के अंदर, इसका उपयोग इनवोकिंग ऑब्जेक्ट को संदर्भित करने के लिए किया जा सकता है।
मित्र कार्यों में यह सूचक नहीं होता है, क्योंकि मित्र वर्ग के सदस्य नहीं होते हैं। केवल सदस्य कार्यों में यह सूचक होता है।
आइए इस सूचक की अवधारणा को समझने के लिए निम्नलिखित उदाहरण का प्रयास करें -
उदाहरण
#include <iostream> using namespace std; class Box { public: // Constructor definition Box(double l = 2.0, double b = 2.0, double h = 2.0) { cout <<"Constructor called." << endl; length = l; breadth = b; height = h; } double Volume() { return length * breadth * height; } int compare(Box box) { return this->Volume() > box.Volume(); } private: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box }; int main(void) { Box Box1(3.3, 1.2, 1.5); // Declare box1 Box Box2(8.5, 6.0, 2.0); // Declare box2 if(Box1.compare(Box2)) { cout << "Box2 is smaller than Box1" <<endl; } else { cout << "Box2 is equal to or larger than Box1" <<endl; } return 0; }
आउटपुट
Constructor called. Constructor called. Box2 is equal to or larger than Box1