परिचय
C++ में अधिकांश बिल्ट-इन ऑपरेटर्स के साथ ऑपरेटर ओवरलोडिंग किया जा सकता है। ओवरलोडेड ऑपरेटर्स कीवर्ड operator के बाद ऑपरेटर सिंबल के साथ फ़ंक्शन होते हैं। ओवरलोडेड ऑपरेटर्स का किसी भी फ़ंक्शन की तरह रिटर्न टाइप और पैरामीटर लिस्ट होती है।
ऑपरेटर ओवरलोडिंग का उपयोग करके कॉम्प्लेक्स नंबर घटाने वाला प्रोग्राम इस प्रकार है -
उदाहरण
#include <iostream>
using namespace std;
class ComplexNum {
private:
int real, imag;
public:
ComplexNum(int r = 0, int i = 0) {
real = r;
imag = i;
}
ComplexNum operator - (ComplexNum const &obj1) {
ComplexNum obj2;
obj2.real = real - obj1.real;
obj2.imag = imag - obj1.imag;
return obj2;
}
void print() {
if (imag >= 0)
cout << real << " + i" << imag << endl;
else
cout << real << " + i(" << imag << ")" << endl;
}
};
int main() {
ComplexNum comp1(15, -2), comp2(5, 10);
cout << "दो कॉम्प्लेक्स नंबर हैं:" << endl;
comp1.print();
comp2.print();
cout << "घटाव का परिणाम है: ";
ComplexNum comp3 = comp1 - comp2;
comp3.print();
}
आउटपुट
दो कॉम्प्लेक्स नंबर हैं: 15 + i(-2) 5 + i10 घटाव का परिणाम है: 10 + i(-12)
उपरोक्त प्रोग्राम में, ComplexNum क्लास परिभाषित की गई है जिसमें real और imag वेरिएबल हैं क्रमशः कॉम्प्लेक्स नंबर के वास्तविक और काल्पनिक भाग के लिए। कंस्ट्रक्टर ComplexNum real और imag के मानों को इनिशियलाइज़ करने के लिए उपयोग किया जाता है। इसमें डिफ़ॉल्ट मान 0 भी होते हैं।
वह फ़ंक्शन जो ओवरलोडेड ऑपरेटर है, उसमें कीवर्ड operator के बाद - होता है क्योंकि वही ऑपरेटर ओवरलोड किया जा रहा है। फ़ंक्शन दो कॉम्प्लेक्स नंबर घटाता है और परिणाम obj2 ऑब्जेक्ट में संग्रहीत होता है। फिर यह मान ComplexNum ऑब्जेक्ट comp3 को लौटाया जाता है।
print() फ़ंक्शन कॉम्प्लेक्स नंबर के वास्तविक और काल्पनिक भाग को प्रिंट करता है।