C ++ कंस्ट्रक्टर ओवरलोडिंग (उदाहरणों के साथ)

इस ट्यूटोरियल में, हम C ++ में कंस्ट्रक्टर ओवरलोडिंग के बारे में उदाहरणों की मदद से सीखेंगे।

फंक्शन ओवरलोडिंग के रूप में कंस्ट्रक्टर्स को इसी तरह से ओवरलोड किया जा सकता है।

अतिभारित कंस्ट्रक्टरों का एक ही नाम (वर्ग का नाम) है लेकिन विभिन्न तर्क हैं। पास किए गए तर्कों की संख्या और प्रकार के आधार पर, संबंधित कंस्ट्रक्टर को कहा जाता है।

उदाहरण 1: कंस्ट्रक्टर ओवरलोडिंग

 // C++ program to demonstrate constructor overloading #include using namespace std; class Person ( private: int age; public: // 1. Constructor with no arguments Person() ( age = 20; ) // 2. Constructor with an argument Person(int a) ( age = a; ) int getAge() ( return age; ) ); int main() ( Person person1, person2(45); cout << "Person1 Age = " << person1.getAge() << endl; cout << "Person2 Age = " << person2.getAge() << endl; return 0; )

आउटपुट

 व्यक्ति 1 आयु = 20 व्यक्ति 2 आयु = 45

इस कार्यक्रम में, हमने एक वर्ग बनाया Personहै जिसकी एक एकल चर आयु है।

हमने दो कंस्ट्रक्टरों को भी परिभाषित किया है Person()और Person(int a):

  • जब ऑब्जेक्ट person1 बनाया जाता है, तो पहले निर्माता को बुलाया जाता है क्योंकि हमने कोई तर्क पारित नहीं किया है। यह कंस्ट्रक्टर उम्र को आरंभ करता है 20
  • जब व्यक्ति 2 बनाया जाता है, तो दूसरे निर्माता को तब से बुलाया जाता है, जब हम 45एक तर्क के रूप में पास हुए हैं। यह कंस्ट्रक्टर उम्र को आरंभ करता है 45

फ़ंक्शन getAge()आयु का मान लौटाता है, और हम इसका उपयोग person1 और person2 की आयु को प्रिंट करने के लिए करते हैं।

उदाहरण 2: कंस्ट्रक्टर ओवरलोडिंग

 // C++ program to demonstrate constructor overloading #include using namespace std; class Room ( private: double length; double breadth; public: // 1. Constructor with no arguments Room() ( length = 6.9; breadth = 4.2; ) // 2. Constructor with two arguments Room(double l, double b) ( length = l; breadth = b; ) // 3. Constructor with one argument Room(double len) ( length = len; breadth = 7.2; ) double calculateArea() ( return length * breadth; ) ); int main() ( Room room1, room2(8.2, 6.6), room3(8.2); cout << "When no argument is passed: " << endl; cout << "Area of room = " << room1.calculateArea() << endl; cout << "When (8.2, 6.6) is passed." << endl; cout << "Area of room = " << room2.calculateArea() << endl; cout << "When breadth is fixed to 7.2 and (8.2) is passed:" << endl; cout << "Area of room = " << room3.calculateArea() << endl; return 0; )

आउटपुट

जब कोई तर्क पारित नहीं किया जाता है: कमरे का क्षेत्र = 28.98 जब (8.2, 6.6) पारित किया जाता है। कमरे का क्षेत्रफल = 54.12 जब चौड़ाई 7.2 और (8.2) तय की गई है: कमरे का क्षेत्रफल = 59.04
  • जब कमरा 1 बनाया जाता है, तो पहला निर्माणकर्ता कहा जाता है। लंबाई को इनिशियलाइज़ किया जाता है 6.9और चौड़ाई को इनिशियलाइज़ किया जाता है 4.2
  • जब कमरा 2 बनाया जाता है, तो दूसरा निर्माणकर्ता कहा जाता है। हम तर्क बीत चुके हैं 8.2और 6.6। लंबाई को पहले तर्क के 8.2लिए आरम्भ किया जाता है और चौड़ाई को आरम्भ किया जाता है 6.6
  • जब कमरा 3 बनाया जाता है, तो तीसरा निर्माणकर्ता कहा जाता है। हमने एक तर्क पारित किया है 8.2। लंबाई को तर्क से आरंभ किया जाता है 8.2। चौड़ाई 7.2डिफ़ॉल्ट रूप से आरंभिक है ।

अनुशंसित ट्यूटोरियल : C ++ फ़ंक्शन ओवरलोडिंग।

दिलचस्प लेख...