यहां हम देखेंगे, जब कंस्ट्रक्टर्स को बुलाया जाता है। यहां कंस्ट्रक्टर विभिन्न प्रकार के होते हैं। वैश्विक, स्थानीय, स्थिर स्थानीय, गतिशील।
वैश्विक वस्तु के लिए, मुख्य कार्य में प्रवेश करने से पहले निर्माणकर्ताओं को बुलाया जाता है।
उदाहरण
#include <iostream> using namespace std; class MyClass { public: MyClass() { cout << "Calling Constructor" << endl; } }; MyClass myObj; //Global object int main() { cout << "Inside Main"; }
आउटपुट
Calling Constructor Inside Main
जब ऑब्जेक्ट नॉन-स्टेटिक होता है, तो कंस्ट्रक्टर को तब कहा जाता है जब निष्पादन उस बिंदु तक पहुंच जाता है, जहां ऑब्जेक्ट बनाया जाता है।
उदाहरण
#include <iostream> using namespace std; class MyClass { public: MyClass() { cout << "Calling Constructor" << endl; } }; int main() { cout << "Inside Main\n"; MyClass myObj; //Local object cout << "After creating object"; }
आउटपुट
Inside Main Calling Constructor After creating object
जब ऑब्जेक्ट लोकल स्टैटिक होता है, तो केवल पहली बार उसके कंस्ट्रक्टर को कॉल किया जाएगा, अगर उसी फ़ंक्शन को दोबारा इस्तेमाल किया जाता है, तो यह प्रभावित नहीं होगा।
उदाहरण
#include <iostream> using namespace std; class MyClass { public: MyClass() { cout << "Calling Constructor" << endl; } }; void func() { static MyClass myObj; //Local static object } int main() { cout << "Inside Main\n"; func(); cout << "After creating object\n"; func(); cout << "After second time"; }
आउटपुट
Inside Main Calling Constructor After creating object After second time
अंत में डायनेमिक ऑब्जेक्ट के लिए, कंस्ट्रक्टर को कॉल किया जाएगा, जब ऑब्जेक्ट नए ऑपरेटर का उपयोग करके बनाया जाता है।
उदाहरण
#include <iostream> using namespace std; class MyClass { public: MyClass() { cout << "Calling Constructor" << endl; } }; int main() { cout << "Inside Main\n"; MyClass *ptr; cout << "Declaring pointer\n"; ptr = new MyClass; cout << "After creating dynamic object"; }
आउटपुट
Inside Main Declaring pointer Calling Constructor After creating dynamic object