Operator Overloading c++ In Hindi
C++ प्रोग्रामिंग लैंग्वेज में ऑपरेटर ओवरलोडिंग से C++ यूजर यूज़र-डिफ़ाइंड डाटा टाइप मेम्बर्स पैरामीटर (जैसे क्लास या स्ट्रक्चर डाटा टाइप) के लिए बिल्ट-इन C++ प्रोग्राम ऑपरेटर (जैसे +, -, *, आदि) के डिफ़ॉल्ट बिहेवियर को फिर से डिफ़ाइन या डिक्लेअर कर सकते हैं। इससे C++ यूजर को यूजर डिफाइन क्लास डाटा टाइप के ऑब्जेक्ट बिल्ट-इन डाटा टाइप की तरह अधिक वर्क या बिहेव करते हैं. जिससे C++ यूजर अपने एक कस्टम क्लास ऑब्जेक्ट आर्गुमेंट के साथ क्लास ऑपरेटर को आसानी से क्लास या स्ट्रक्चर डाटा टाइप में अप्लाई कर सकते हैं।

C++ प्रोग्राम में ऑपरेटर ओवरलोडिंग से C++ यूजर क्लास या स्ट्रक्चर डाटा टाइप के सोर्स कोड की रिडेबलिटी को इनक्रीस करते है. जिससे मौजूदा क्लास में उसके ऑब्जेक्ट को ऑपरेटर का यूज़ करके इस तरह से मैनिपुलेट किया जा सकता है. जो उनके मौजूदा स्पेशल डाटा टाइप के लिए बेस्ट डिफाइन हो।
Special features of class operator overloading in C++.
- Syntax – C++ यूजर किसी क्लास या स्ट्रक्चर डाटा टाइप में ऑपरेटर को ओवरलोड करने के लिए ऑपरेटर कीवर्ड के बाद ऑपरेटर सिंबल का यूज़ कर सकते हैं।
- Member vs. Non-Member – क्लास या स्ट्रक्चर डाटा टाइप में ऑपरेटर ओवरलोड मेंबर डाटा टाइप फ़ंक्शन या नॉन-मेंबर फ़ंक्शन (फ्रेंड फ़ंक्शन) के रूप में डिफाइन हो सकते हैं।
- Preserving Original Functionality – C++ यूजर अपने यूज़र-डिफ़ाइंड कस्टम डाटा टाइप के लिए उन्हें क्लास या स्ट्रक्चर डाटा टाइप में ओवरलोड करते समय भी बिल्ट-इन टाइप के लिए बिल्ट-इन ऑपरेटर को अप्लाई कर सकते हैं।
- Functionality – C++ प्रोगाम में ऑपरेटर ओवरलोडिंग करते समय नए ऑपरेटर क्रिएट करने या मौजूदा C++ क्लास ऑपरेटर की प्रेसीडेंसी या एसोसिएटिविटी को मॉडिफाई या चेंज की परमिशन प्रोवाइड नहीं करता है।
Basic syntax of operator overloading in a C++ program.
Syntax of member functions in operator overloading.
class ClassName {
public:
ReturnType operator OPERATOR(Parameter/ArgumentList) {
// User-defined class function body statement
}
};
Syntax of non-member (friend function) in operator overloading.
class ClassName {
friend ReturnType operator OPERATOR(ClassName& obj, ArgumentType arg);
};
Explanation of member function and non-member function in operator overloading.
- Member function – C++ क्लास मेंबर फंक्शन या स्ट्रक्चर प्रोगाम में ऑपरेटर एक बिल्ट-इन मेंबर फ़ंक्शन है, और इसे मौजूदा क्लास मेंबर में लेफ्ट-हैंड ऑपरेंड को इम्प्लिसिटली के रूप में पास किया जाता है।
- Non-member function – C++ क्लास या नॉन-मेंबर स्ट्रक्चर प्रोगाम में ऑपरेटर एक नॉन-मेंबर फ़ंक्शन की तरह डिफाइन किया जाता है, और C++ यूजर को इस लेफ्ट-हैंड ऑपरेंड को एक्सप्लिसिटली के रूप में पास करना होगा।
Basic examples of operator overloading in a C++ class.
तो चलिए C++ क्लास में एक कॉम्प्लेक्स प्रोग्राम क्रिएट करते हैं. जो दो कॉम्प्लेक्स फ्लोट डाटा टाइप मेम्बर्स नम्बर्स को ऐड करने के लिए + अरिथमेटिक ऑपरेटर को ओवरलोड करते हैं।
Overloading the + operator in a C++ class.
#include <iostream>
using namespace std;
class ComplexNumbers {
private:
float realnumbers;
float imaginarynumbers;
public:
// here we define Constructor for ComplexNumbers to class data type
ComplexNumbers(float r = 0, float i = 0) : realnumbers(r), imaginarynumbers(i) {}
// here we Overloading + arithmetic operator as a member of class function
ComplexNumbers operator + (const ComplexNumbers& other) {
return ComplexNumbers(realnumbers + other.realnumbers, imaginarynumbers + other.imaginarynumbers);
}
// here we create preview function for display ComplexNumbers object
void preview() {
cout << realnumbers << ” + ” << imaginarynumbers << “i” << endl;
}
};
int main() {
ComplexNumbers cmplx1(7.4, 6.5), cmplx2(2.4, 3.5);
ComplexNumbers cmplx3 = cmplx1 + cmplx2; // here we use + operator overloaded method to add real and imaginary complex numbers
cmplx3.preview(); // Result – 9.8 + 10i
return 0;
}
Explain operator overloading in a C++ class.
- यहाँ इस एक्साम्प्ल में + अरिथमेटिक ऑपरेटर को ComplexNumbers क्लास के मेंबर फ़ंक्शन के रूप में ओवरलोड किया जाता है।
- मेंबर फ़ंक्शन ऑपरेटर + एक कॉम्प्लेक्स ऑब्जेक्ट को एक आर्गुमेंट के रूप में ट्रीट करता है, और दो अलग अलग रियल और इमेजिनरी कॉम्प्लेक्स नंबरों के + ऐड को डिस्प्ले करने वाला एक नया कॉम्प्लेक्स ऑब्जेक्ट वैल्यू को रिटर्न करता है।
- ComplexNumbers क्लास में main() फ़ंक्शन ओवरलोडेड + ऑपरेटर को अप्लाई करके दो कॉम्प्लेक्स ऑब्जेक्ट के टोटल वैल्यू को डिस्प्ले करता है।

