C++ में ऑपरेटर ओवरलोडिंग एक महत्वपूर्ण अवधारणा है। यह एक प्रकार का बहुरूपता है जिसमें एक ऑपरेटर को उपयोगकर्ता-परिभाषित अर्थ देने के लिए अतिभारित किया जाता है। ओवरलोडेड ऑपरेटर का उपयोग उपयोगकर्ता द्वारा परिभाषित डेटा प्रकार पर ऑपरेशन करने के लिए किया जाता है। उदाहरण के लिए, '+' ऑपरेटर को विभिन्न डेटा प्रकारों, जैसे इंटीजर, स्ट्रिंग (संयोजन), आदि पर अतिरिक्त प्रदर्शन करने के लिए ओवरलोड किया जा सकता है।
इनपुट
10 20 20 30
आउटपुट
30 50
स्पष्टीकरण
ऑपरेटर ओवरलोडिंग द्वारा '-' ऑपरेटर का उपयोग करके दो नंबरों को जोड़ने के लिए। बाइनरी ऑपरेटरों को एक ऑब्जेक्ट को तर्क के रूप में आवश्यकता होगी ताकि वे ऑपरेशन कर सकें। अगर हम यहां फ्रेंड फंक्शंस का इस्तेमाल कर रहे हैं तो इसके लिए दो आर्ग्युमेंट्स की जरूरत होगी।
ऑपरेटर को बुलाया जा रहा है:ob1-ob2. ऑपरेटर से पहले की वस्तु फ़ंक्शन को लागू करेगी और ऑपरेटर के बाद की वस्तु को फ़ंक्शन के तर्क के रूप में पारित किया जाएगा। तो, इस मामले में, ob1 वस्तु का आह्वान कर रहा है और ob2 को फ़ंक्शन के तर्क के रूप में पारित किया गया है।
हम 10, 20 को ob1 के x और y के मान के रूप में और 20, 30 को ob2 के x और y के मान के रूप में पास कर रहे हैं।
उदाहरण
#include <iostream> using namespace std; class sum { public: int x, y, z; void getdata(int a, int b) { x=a; y=b; } void display() { cout<<"\nSum of X:"<<x; cout<<"\nSum of Y:"<<y; } void operator-(sum &); }; void sum::operator-(sum &ob) { x=x+ob.x; y=y+ob.y; display(); } int main() { sum ob1, ob2; ob1.getdata(10,20); ob2.getdata(20,30); ob1-ob2; }