Constructor overloading c++ In Hindi

Constructor overloading c++ In Hindi

C++ प्रोग्रामिंग लैंग्वेज में कंस्ट्रक्टर मेथड ओवरलोडिंग का अर्थ है की जिसमे एक ही यूजर डिफाइन क्लास में एक ही नाम से लेकिन मल्टीप्ल इंडिविजुअल क्लास वेरिएबल पैरामीटर लिस्ट वाले कई तरह के कंस्ट्रक्टर मेथड को डिफाइन डिक्लेअर करने के एडवांटेज हो। इससे C++ यूजर मौजूदा क्लास में एसेंशियल क्लास ऑब्जेक्ट क्रिएट करते समय प्रोवाइड किए गए मौजूदा क्लास आर्गुमेंट के आधार पर इंडिविजुअल मेथड से ऑब्जेक्ट क्रिएट कर सकते हैं।

Constructor overloading c++ In Hindi

क्लास में फ़ंक्शन ओवरलोडिंग मेथड के जैसे ही, कंस्ट्रक्टर ओवरलोडिंग मेथड कांसेप्ट C++ यूजर को क्लास ऑब्जेक्ट को कैसे इंस्टैंशिएट किया जाता है. इसमें हेल्प करता है, इसके आधार पर मौजूदा क्लास में डिफाइन कंस्ट्रक्टर मेथड मल्टीप्ल इंडिविजुअल इनिशियलाइज़ेशन बिहेवियर को डिफाइन करने के फीचर्स प्रोवाइड करता है।

Special features of constructor overloading method.

  • Same name – किसी क्लास में डिफाइन सभी ओवरलोडेड कंस्ट्रक्टर मेथड का नाम क्लास के नाम के जैसा ही होना चाहीए।
  • Different parameter lists – यूजर डिफाइन क्लास में ओवरलोडेड क्लास कंस्ट्रक्टर की पैरामीटर वेरिएबल लिस्ट (नंबर, डाटा टाइप, या डिफाइन वेरिएबल पैरामीटर का डिफ़ॉल्ट आर्डर) इंडिविजुअल या सेपरेट होना चाहिए।
  • Default Constructor – यदि मौजूदा प्रोग्राम में यूज़र कोई कंस्ट्रक्टर मेथड प्रोवाइड नहीं करता है, तो C++ कंपाइलर एक डिफ़ॉल्ट कंस्ट्रक्टर मेथड को प्रोवाइड करता है। यदि C++ यूजर ओवरलोडेड कंस्ट्रक्टर मेथड को प्रोवाइड करते हैं. तो इस प्रोसेस में C++ कंपाइलर तब तक एक डिफ़ॉल्ट कंस्ट्रक्टर क्रिएट नहीं करता है. जब तक कि उसे क्लियर आर्डर में डिफाइन न किया गया हो।
  • Constructor Resolution – किसी क्लास में ऑब्जेक्ट क्रिएट करते समय पास किए गए वेरिएबल पैरामीटर आर्गुमेंट की नंबर्स और उसके डाटा टाइप के आधार पर एक प्रॉपर कंस्ट्रक्टर मेथड को सलेक्ट किया जाता है।

Why use constructor overloading method in C++?

  • Flexibility – मौजूदा क्लास में कंस्ट्रक्टर ओवरलोडिंग मेथड से एक ही क्लास के मल्टीप्ल क्लास ऑब्जेक्ट्स को इंडिविजुअल तरीकों से इनिशियलाइज़ किया जा सकता है. जिससे C++ प्रोग्रामर को प्रोग्राम मेन्टेन करने में फ्लेक्सिबिलिटी मिलती है।
  • Code Readability – कंस्ट्रक्टर ओवरलोडिंग मेथड C++ प्रोग्रामर को मल्टीप्ल सेपरेट इनिशियलाइज़ेशन ज़रूरतों वाले क्लास ऑब्जेक्ट्स क्रिएट करने का एक क्लियर आर्डर और स्माल मेथड प्रोवाइड करता है।
  • Convenience – कंस्ट्रक्टर ओवरलोडिंग मेथड C++ प्रोग्रामर को मल्टीप्ल सेपरेट अलग-अलग क्लास ऑब्जेक्ट पैरामीटर इनिशियलाइज़ेशन सिनेरियो के लिए कई क्लास या फ़ैक्टरी मेथड क्रिएट करने की ज़रूरत को कम करता है।

Syntax of constructor method overloading.

class ClassName {

public:

ClassName(); // Define the default class constructor method

ClassName(int p); // This is a parameterized constructor method with a single parameter

ClassName(int p, double q); // This is a parameterized constructor method with two parameters in the current class.

// Elements of another member class function

};

Example of constructor method overloading in C++ programming.

तो चलिए चलिए C++ प्रोग्रामिंग में एक एक्साम्प्ल से समझते हैं. जिसमे एक कंस्ट्रक्टर ओवरलोडिंग मेथड को रिप्रेजेंट किया गया हो।

#include <iostream>

using namespace std;

class Triangle {

private:

    double base;

    double height;

public:

    // here we define a Default constructor method

    Triangle() {

        base = 2.0;

        height = 2.0;

        cout << “Here we called a Default constructor method.” << endl;

    }

    // here we declare a Constructor with one parameter argument

    Triangle(double b) {

        base = b;

        height = 2.0; // here we set Default height for single parameter

        cout << “Here we called a Constructor with one parameter.” << endl;

    }

    // here we declare a Constructor with two parameters argument

    Triangle(double b, double h) {

        base = b;

        height = h;

        cout << “Here we called a Constructor with two parameters.” << endl;

    }

    // here we declare a Function to display the each triangle dimensions

    void preview() {

        cout << “Triangle Base – ” << base << “, Triangle Height – ” << height << endl;

    }

    // here we declare a Function to calculate and display the area of triangle

    void area() {

        cout << “Area of triangle – ” << 0.5 * base * height << endl;

    }

};

int main() {

    // here we Using the default constructor method

    Triangle tri1;

    tri1.preview();

    tri1.area();

    // here we Using the constructor with one parameter argument method

    Triangle tri2(7.0);

    tri2.preview();

    tri2.area();

    // here we Using the constructor with two parameters argument method

    Triangle tri3(3.0, 7.0);

    tri3.preview();

    tri3.area();

    return 0;

}

Explanation of a constructor method overloading in C++.

  • Default constructor (Triangle()) – यह मौजूदा प्रोग्राम में कंस्ट्रक्टर मेथड को तब कॉल करता है, जब मौजूदा क्लास में कोई आर्गुमेंट पास नहीं किया जाता है। यह ट्रायंगल बेस और हाइट दोनों को 2.0 वैल्यू पर इनिशियलाइज़ करता है।
  • Single parameterized constructor method Triangle(double b) – यह कंस्ट्रक्टर मेथड मौजूदा प्रोग्राम में तब कॉल किया जाता है, जब एक आर्गुमेंट (बेस) पास किया जाता है। यह बेस को पास की गई वैल्यू पर और हाइट को 2.0 की डिफ़ॉल्ट वैल्यू पर सेट करता है।
  • Two parameterized constructor (Triangle(double b, double h)) – यह कंस्ट्रक्टर मेथड मौजूदा प्रोग्राम में तब कॉल किया जाता है. जब दो आर्गुमेंट वाले कंस्ट्रक्टर मेथड (बेस और हाइट) क्लास आर्गुमेंट पास किए जाते हैं। यह मौजूदा प्रोग्राम में बेस और हाइट दोनों को पास की गई वैल्यू पर इनिशियलाइज़ करता है।

Leave a Reply