C++ में, हम कुछ क्लासेस डेराइव कर सकते हैं। कभी-कभी हमें डेराइव्ड क्लास के कंस्ट्रक्टर को कॉल करते समय सुपर क्लास (बेस क्लास) कंस्ट्रक्टर को कॉल करने की आवश्यकता होती है। Java के विपरीत सुपर क्लास के लिए कोई रेफरेंस वेरिएबल नहीं है। यदि कंस्ट्रक्टर नॉन-पैरामीट्राइज्ड है, तो यह डेराइव्ड क्लास के साथ स्वचालित रूप से कॉल हो जाएगा, अन्यथा हमें डेराइव्ड क्लास के इनिशियलाइज़र लिस्ट में सुपर क्लास कंस्ट्रक्टर को रखना होगा।
इस उदाहरण में पहले हम बिना आर्गुमेंट वाले कंस्ट्रक्टर को देखेंगे।
उदाहरण
#include <iostream>
using namespace std;
class MyBaseClass {
public:
MyBaseClass() {
cout << "Constructor of base class" << endl;
}
};
class MyDerivedClass : public MyBaseClass {
public:
MyDerivedClass() {
cout << "Constructor of derived class" << endl;
}
};
int main() {
MyDerivedClass derived;
return 0;
}
आउटपुट
Constructor of base class Constructor of derived class
अब पैरामीटर लेने वाले कंस्ट्रक्टर को देखते हैं।
उदाहरण
#include <iostream>
using namespace std;
class MyBaseClass {
public:
MyBaseClass(int x) {
cout << "Constructor of base class: " << x << endl;
}
};
class MyDerivedClass : public MyBaseClass {
// बेस कंस्ट्रक्टर को इनिशियलाइज़र लिस्ट में
public:
MyDerivedClass(int y) : MyBaseClass(50) {
cout << "Constructor of derived class: " << y << endl;
}
};
int main() {
MyDerivedClass derived(100);
return 0;
}
आउटपुट
Constructor of base class: 50 Constructor of derived class: 100