Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में कंस्ट्रक्टर्स

कंस्ट्रक्टर एक वर्ग के कार्य होते हैं जिन्हें तब निष्पादित किया जाता है जब कक्षा की नई वस्तुएँ बनाई जाती हैं। कंस्ट्रक्टर्स का नाम क्लास के समान है और कोई रिटर्न टाइप नहीं है, यहां तक ​​​​कि शून्य भी नहीं है। वे प्राथमिक रूप से वर्ग के चरों के लिए प्रारंभिक मान प्रदान करने के लिए उपयोगी होते हैं।

दो मुख्य प्रकार के कंस्ट्रक्टर डिफॉल्ट कंस्ट्रक्टर और पैरामीटराइज्ड कंस्ट्रक्टर हैं। इनके बारे में विवरण इस प्रकार दिया गया है।

डिफ़ॉल्ट कंस्ट्रक्टर

डिफ़ॉल्ट कंस्ट्रक्टर कोई पैरामीटर नहीं लेते हैं। यदि प्रोग्रामर द्वारा स्पष्ट रूप से एक डिफॉल्ट कंस्ट्रक्टर प्रदान नहीं किया जाता है, तो कंपाइलर एक अंतर्निहित डिफॉल्ट कंस्ट्रक्टर प्रदान करता है। उस स्थिति में, चर के डिफ़ॉल्ट मान 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();

  1. C++ में डिफॉल्ट कंस्ट्रक्टर्स

    कंस्ट्रक्टर एक वर्ग के कार्य होते हैं जिन्हें तब निष्पादित किया जाता है जब कक्षा की नई वस्तुएँ बनाई जाती हैं। कंस्ट्रक्टर्स का नाम क्लास के समान है और कोई रिटर्न टाइप नहीं है, यहां तक ​​​​कि शून्य भी नहीं है। वे प्राथमिक रूप से वर्ग के चरों के लिए प्रारंभिक मान प्रदान करने के लिए उपयोगी होते हैं। दो

  1. सी ++ में विनाशक

    सी ++ में विनाशक एक वर्ग में सदस्य कार्य होते हैं जो किसी ऑब्जेक्ट को हटाते हैं। उन्हें तब बुलाया जाता है जब क्लास ऑब्जेक्ट स्कोप से बाहर हो जाता है जैसे कि जब फंक्शन समाप्त होता है, प्रोग्राम समाप्त होता है, एक डिलीट वेरिएबल कहा जाता है आदि। विनाशक सामान्य सदस्य कार्यों से भिन्न होते हैं क्योंकि व

  1. C++ में कॉपी कंस्ट्रक्टर

    कॉपी कंस्ट्रक्टर एक प्रकार का कंस्ट्रक्टर है। यह एक ऑब्जेक्ट बनाता है और इसे उसी क्लास के ऑब्जेक्ट के साथ इनिशियलाइज़ करता है। यदि कॉपी कंस्ट्रक्टर को कक्षा में परिभाषित नहीं किया गया है, तो संकलक स्वयं एक को परिभाषित करता है। एक कॉपी कंस्ट्रक्टर उस वर्ग के लिए जरूरी है जिसमें पॉइंटर वैरिएबल या डायन