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

C++ में कंस्ट्रक्टर्स (Constructors)


कंस्ट्रक्टर क्या हैं?

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

कंस्ट्रक्टर के दो मुख्य प्रकार

1. डिफॉल्ट कंस्ट्रक्टर

कोई पैरामीटर नहीं लेता। यदि स्पष्ट रूप से परिभाषित न हो तो कंपाइलर अंतर्निहित प्रदान करता है।

उदाहरण

#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

2. पैरामीट्रिक कंस्ट्रक्टर (Parameterized Constructor)

आर्गुमेंट्स लेता है ताकि ऑब्जेक्ट बनते समय विशिष्ट मानों से आरंभ किया जा सके। सामान्य फ़ंक्शन की तरह पैरामीटर जोड़े जाते हैं। निहित या स्पष्ट रूप से कॉल किया जा सकता है।

उदाहरण

#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

अन्य कंस्ट्रक्टर प्रकार

  • कॉपी कंस्ट्रक्टर: समान क्लास के ऑब्जेक्ट से नया ऑब्जेक्ट बनाता है
  • मूव कंस्ट्रक्टर (C++11): संसाधनों को मूव करता है (कॉपी नहीं)
  • डेलीगेटिंग कंस्ट्रक्टर (C++11): एक कंस्ट्रक्टर दूसरे को कॉल करता है

कंस्ट्रक्टर ओवरलोडिंग

एक क्लास में कई कंस्ट्रक्टर हो सकते हैं (अलग-अलग पैरामीटर सूची के साथ)।

सर्वोत्तम अभ्यास

  • सदस्य आरंभीकरण सूची (member initializer list) का उपयोग करें
  • कॉपी/मूव सेमेन्टिक्स सही ढंग से परिभाषित करें
  • RAII सिद्धांत का पालन करें
  1. - C++ में डिफॉल्ट कंस्ट्रक्टर

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

  1. - C++ में डिस्ट्रक्टर (Destructors)

    डिस्ट्रक्टर क्या है? डिस्ट्रक्टर क्लास का सदस्य फ़ंक्शन है जो ऑब्जेक्ट को नष्ट करता है। जब ऑब्जेक्ट स्कोप से बाहर जाता है (फ़ंक्शन समाप्त, प्रोग्राम समाप्त, delete कॉल) तो स्वचालित रूप से कॉल होता है। विशेषताएं कोई पैरामीटर नहीं लेता कोई रिटर्न मान नहीं नाम: क्लास का नाम जिस पर टिल्ड (~) लगा हो ए

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

    कॉपी कंस्ट्रक्टर क्या है? एक प्रकार का कंस्ट्रक्टर जो समान क्लास के मौजूदा ऑब्जेक्ट से नया ऑब्जेक्ट बनाता और आरंभ करता है। यदि परिभाषित न हो तो कंपाइलर डिफॉल्ट कॉपी कंस्ट्रक्टर बनाता है (शैलो कॉपी)। पॉइंटर सदस्यों या डायनामिक मेमोरी वाली क्लास के लिए डीप कॉपी कंस्ट्रक्टर आवश्यक है। सिंटैक्स ClassN