जैसा कि हम जानते हैं फ़ंक्शन ओवरलोडिंग ऑब्जेक्ट ओरिएंटेड भाषाओं की मुख्य विशेषताओं में से एक है। हम फ़ंक्शन्स के समान नाम का उपयोग कर सकते हैं; जिनके पैरामीटर सेट अलग-अलग हैं। यहां हम देखेंगे कि C++ क्लासेस के कंस्ट्रक्टर्स को कैसे ओवरलोड करें। कंस्ट्रक्टर ओवरलोडिंग की कुछ महत्वपूर्ण अवधारणाएं हैं।
- ओवरलोडेड कंस्ट्रक्टर्स का नाम समान होना चाहिए और आर्गुमेंट्स की संख्या अलग-अलग होनी चाहिए।
- कंस्ट्रक्टर को पास किए गए आर्गुमेंट्स की संख्या और प्रकार के आधार पर कॉल किया जाता है।
- ऑब्जेक्ट बनाते समय हमें आर्गुमेंट पास करना होगा, अन्यथा कंस्ट्रक्टर समझ नहीं पाएगा कि कौन सा कंस्ट्रक्टर कॉल किया जाएगा।
उदाहरण
#include <iostream>
using namespace std;
class Rect {
private:
int area;
public:
Rect() {
area = 0;
}
Rect(int a, int b) {
area = a * b;
}
void display() {
cout << "The area is: " << area << endl;
}
};
main() {
Rect r1;
Rect r2(2, 6);
r1.display();
r2.display();
}
आउटपुट
The area is: 0 The area is: 12