यहां हम क्लास इंटर्नल देखेंगे। इससे पहले हम डिफॉल्ट कंस्ट्रक्टर देखेंगे, जो इंटर्नल से संबंधित हैं। डिफ़ॉल्ट कंस्ट्रक्टर एक कंस्ट्रक्टर (उपयोगकर्ता या कंपाइलर द्वारा परिभाषित) होता है जो कोई तर्क नहीं लेता है। अब सवाल आता है कि डिफ़ॉल्ट कंस्ट्रक्टर का उपयोग क्यों किया जाता है?
यदि डिफॉल्ट कंस्ट्रक्टर नहीं दिया गया है, तो कंपाइलर डिफॉल्ट कंस्ट्रक्टर घोषित करेगा। कुछ क्लास इंटर्नल को इनिशियलाइज़ करने के लिए डिफॉल्ट कंस्ट्रक्टर का उपयोग किया जाता है। यह वर्ग के डेटा सदस्य को प्रभावित नहीं करेगा। कंपाइलर कुछ अलग स्थितियों में डिफ़ॉल्ट कंस्ट्रक्टर को सम्मिलित करता है। मान लीजिए कि एक वर्ग किसी अन्य वर्ग से डिफॉल्ट कंस्ट्रक्टर के साथ लिया गया है, या एक वर्ग डिफॉल्ट कंस्ट्रक्टर के साथ किसी अन्य वर्ग की वस्तु को शामिल करता है। कंपाइलर बेस क्लास या वर्तमान ऑब्जेक्ट के अंदर रखी गई वस्तु के लिए डिफ़ॉल्ट कंस्ट्रक्टर को कॉल करने के लिए कोड सम्मिलित करता है।
आइए विचार प्राप्त करने के लिए एक कोड देखें।
उदाहरण
#include<iostream>
using namespace std;
class Base {
public:
// compiler will create one constructor for the class "Base"
};
class ClassA {
public:
ClassA(){
cout << "ClassA Constructor defined by user" << endl;
}
int x; //it will not be initialized
};
class ClassB : public ClassA {
//compiler will create ClassB constructor and add some code to call
ClassA constructor
};
class ClassC : public ClassA {
public:
ClassC() { //user defined consturctor, but compiler will add
code to call A constructor
cout << "User defined ClassC Constructor" << endl;
}
};
class ClassD {
public:
ClassD(){
// User defined default constructor. The compiler will add
code to call object of ClassA
cout << "User-defined consturctor for ClassD Constructor" <<
endl;
}
private:
ClassA obj;
};
int main() {
Base baseObj;
ClassB b;
ClassC c;
ClassD d;
} आउटपुट
ClassA Constructor defined by user ClassA Constructor defined by user User defined ClassC Constructor ClassA Constructor defined by user User-defined consturctor for ClassD Constructor