कंस्ट्रक्टर एक वर्ग के कार्य होते हैं जिन्हें तब निष्पादित किया जाता है जब कक्षा की नई वस्तुएँ बनाई जाती हैं। कंस्ट्रक्टर्स का नाम क्लास के समान है और कोई रिटर्न टाइप नहीं है, यहां तक कि शून्य भी नहीं है। वे प्राथमिक रूप से वर्ग के चरों के लिए प्रारंभिक मान प्रदान करने के लिए उपयोगी होते हैं।
दो मुख्य प्रकार के कंस्ट्रक्टर डिफॉल्ट कंस्ट्रक्टर और पैरामीटराइज्ड कंस्ट्रक्टर हैं। इनके बारे में विवरण इस प्रकार दिया गया है।
डिफ़ॉल्ट कंस्ट्रक्टर
डिफ़ॉल्ट कंस्ट्रक्टर कोई पैरामीटर नहीं लेते हैं। यदि प्रोग्रामर द्वारा स्पष्ट रूप से एक डिफॉल्ट कंस्ट्रक्टर प्रदान नहीं किया जाता है, तो कंपाइलर एक अंतर्निहित डिफॉल्ट कंस्ट्रक्टर प्रदान करता है। उस स्थिति में, चर के डिफ़ॉल्ट मान 0 होते हैं।
एक प्रोग्राम जो डिफॉल्ट कंस्ट्रक्टर्स को प्रदर्शित करता है, वह इस प्रकार दिया गया है।
उदाहरण
#include <iostream> using namespace std; class A { private: int num1, num2 ; public: A() { num1 = 5; num2 = 7; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } }; int main() { A obj; obj.display(); return 0; }
आउटपुट
num1 = 5 num2 = 7
उपरोक्त प्रोग्राम में, क्लास ए में एक डिफॉल्ट कंस्ट्रक्टर होता है जो num1 और num2 को 5 और 7 के रूप में इनिशियलाइज़ करता है। इसमें एक फंक्शन डिस्प्ले () भी होता है जो num1 और num2 के मान को प्रिंट करता है। इसके लिए कोड स्निपेट इस प्रकार दिया गया है।
class A { private: int num1, num2 ; public: A() { num1 = 5; num2 = 7; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } };
फंक्शन मेन () में क्लास टाइप ए के ऑब्जेक्ट के लिए ऑब्जेक्ट डेफिनिशन होता है। फिर फंक्शन डिस्प्ले () को कॉल किया जाता है। यह नीचे दिखाया गया है।
A obj; obj.display();
पैरामीटरेटेड कंस्ट्रक्टर्स
पैरामीटरयुक्त कंस्ट्रक्टर किसी ऑब्जेक्ट को बनाते समय इनिशियलाइज़ करने के लिए तर्क ले सकते हैं। पैरामीटर्स को एक पैरामीटराइज्ड कंस्ट्रक्टर में वैसे ही जोड़ा जाता है जैसे वे एक सामान्य फंक्शन में जोड़े जाते हैं। पैरामीटरयुक्त कंस्ट्रक्टर्स को परोक्ष या स्पष्ट रूप से कहा जा सकता है।
एक प्रोग्राम जो पैरामीटरयुक्त कंस्ट्रक्टरों को प्रदर्शित करता है, वह इस प्रकार दिया गया है।
उदाहरण
#include <iostream> using namespace std; class A { private: int num1, num2 ; public: A(int n1, int n2) { num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } }; int main() { A obj(3,8); obj.display(); return 0; }
आउटपुट
num1 = 3 num2 = 8
उपरोक्त कार्यक्रम में, क्लास ए में एक पैरामीटरयुक्त कंस्ट्रक्टर होता है जो n1 और n2 द्वारा प्रदान किए गए मानों के साथ num1 और num2 को इनिशियलाइज़ करता है। इसमें एक फ़ंक्शन डिस्प्ले () भी होता है जो num1 और num2 के मान को प्रिंट करता है। इसके लिए कोड स्निपेट इस प्रकार दिया गया है।
class A { private: int num1, num2 ; public: A(int n1, int n2) { num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } };
फंक्शन मेन () में क्लास टाइप ए के ऑब्जेक्ट के लिए ऑब्जेक्ट डेफिनिशन होता है। फिर फंक्शन डिस्प्ले () को कॉल किया जाता है। यह नीचे दिखाया गया है।
A obj(3,8); obj.display();