Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सामान्य रूप से पूछे जाने वाले C++ साक्षात्कार प्रश्न

यहां हम कुछ महत्वपूर्ण 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

  1. C/C++ में सूचक अंकगणित

    पॉइंटर अंकगणित का उपयोग सी भाषा में अंकगणितीय संचालन जैसे जोड़ घटाव, वेतन वृद्धि आदि को लागू करने के लिए किया जाता है। चार सूचक अंकगणित हैं जैसे जोड़, घटाव, वृद्धि और कमी। 32-बिट मशीन में, यह मान को 2 से बढ़ाता या घटाता है और यह 2* नंबर जोड़ या घटाएगा। 64-बिट मशीन में, यह मान को 4 से बढ़ाता या घटाता

  1. C++ में रैंडम पॉइंटर के साथ कॉपी लिस्ट

    एक लिंक्ड सूची एक रैखिक डेटा संरचना है जिसमें प्रत्येक नोड में दो ब्लॉक होते हैं जैसे कि एक ब्लॉक में नोड का मान या डेटा होता है और दूसरे ब्लॉक में अगले फ़ील्ड का पता होता है। आइए मान लें कि हमारे पास एक लिंक्ड सूची है जैसे कि प्रत्येक नोड में एक यादृच्छिक सूचक होता है जो सूची में अन्य नोड्स को इंग

  1. कंस्ट्रक्टर्स पर जावा साक्षात्कार प्रश्न

    यदि बुनियादी अवधारणाएं स्पष्ट नहीं हैं तो जावा साक्षात्कार मुश्किल हो सकते हैं। इसलिए, जावा कक्षाओं, विधियों, इंटरफेस, इनहेरिटेंस और अन्य ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग अवधारणाओं की अवधारणाओं और कार्यप्रणाली के साथ पूरी तरह से परिचित होना आवश्यक है। जावा में कंस्ट्रक्टर्स के संबंध में कुछ साक्षात्का