C++ में अधिकांश बिल्ट-इन ऑपरेटरों के साथ ऑपरेटर ओवरलोडिंग की जा सकती है। ओवरलोडेड ऑपरेटर कीवर्ड ऑपरेटर के साथ कार्य करते हैं जिसके बाद ऑपरेटर प्रतीक परिभाषित किया जाता है। अतिभारित ऑपरेटरों के पास किसी भी फ़ंक्शन की तरह रिटर्न प्रकार और पैरामीटर सूची होती है।
एक प्रोग्राम जो ऑपरेटर ओवरलोडिंग का उपयोग करके जटिल संख्याओं को घटाता है, वह इस प्रकार है -
उदाहरण
#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<<"The two comple numbers are:"<<endl; comp1.print(); comp2.print(); cout<<"The result of the subtraction is: "; ComplexNum comp3 = comp1 - comp2; comp3.print(); }
आउटपुट
The two comple numbers are: 15 + i(-2) 5 + i10 The result of the subtraction is: 10 + i(-12)
उपरोक्त कार्यक्रम में, कॉम्प्लेक्सनम वर्ग को परिभाषित किया गया है जिसमें एक जटिल संख्या के वास्तविक और काल्पनिक भाग के लिए क्रमशः वास्तविक और काल्पनिक चर हैं। कंस्ट्रक्टर कॉम्प्लेक्सनम का उपयोग वास्तविक और इमेज के मूल्यों को आरंभ करने के लिए किया जाता है। इसमें 0 के रूप में डिफ़ॉल्ट मान भी शामिल हैं। यह निम्नलिखित कोड स्निपेट में दिखाया गया है -
class ComplexNum { private: int real, imag; public: ComplexNum(int r = 0, int i =0) { real = r; imag = i; } }
फ़ंक्शन जो ओवरलोडेड ऑपरेटर होता है, उसमें कीवर्ड ऑपरेटर होता है - उसके बाद - जैसा कि ऑपरेटर को ओवरलोड किया जा रहा है। फ़ंक्शन दो जटिल संख्याओं को घटाता है और परिणाम ऑब्जेक्ट obj2 में संग्रहीत किया जाता है। फिर यह मान ComplexNum ऑब्जेक्ट COMP3 में वापस कर दिया जाता है।
निम्नलिखित कोड स्निपेट इसे प्रदर्शित करता है -
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; }