Operator Overloading in C++ in Hindi – ऑपरेटर ओवरलोडिंग क्या है?

हेल्लो दोस्तों! आज हम इस पोस्ट में Operator Overloading in C++ in Hindi (ऑपरेटर ओवरलोडिंग क्या है?) के बारें में पढेंगे और इसके rules और examples को भी सीखेंगे. मैंने इसे बहुत ही आसान भाषा में लिखा है. आप इसे पूरा पढ़िए आपको यह आसानी से समझ में आ जायेगा. तो चलिए start करते हैं:-

Operator Overloading in C++ in Hindi

C++ में, हम Operator के लिए एक ही scope में एक से ज्यादा definition को specify कर सकते हैं. इसे ही operator overloading कहते है.

दूसरे शब्दों में कहें तो , “Operator overloading एक compile-time polymorphism है जिसमें user-defined data type को एक विशेष meaning देने के लिए operators को overload किया जाता है.”

C++ में, ऑपरेटर ओवरलोडिंग का प्रयोग user-defined data type में operation को perform करने के लिए किया जाता है.

इसका मुख्य लाभ यह है कि इसके द्वारा हम समान operand में अलग-अलग operations को perform कर सकते हैं. उदाहरण के लिए – ‘+’ ऑपरेटर का प्रयोग हम integer को add करने के लिए करते है. और ‘+’ का प्रयोग strings को concatenate करने के लिए भी करते है.

C++ में ज्यादातर सभी operators को overload किया जा सकता है परन्तु इसमें कुछ operators है जिन्हें overload नहीं किया जा सकता. Operators जिन्हें overload नहीं किया जा सकता वो निम्नलिखित हैं:-

  • scope operator – ::
  • sizeof
  • member selector -.
  • member pointer selector – *
  • ternary operator -?:

Operator overloading का syntax

ऑपरेटर को overload करने के लिए हम एक विशेष operator फंक्शन का प्रयोग करते हैं:-

class className {
... .. ...
public
returnType operator symbol (arguments) {
... .. ...
} 
... .. ...
};

यहाँ,

  • returnType, फंक्शन का return type है.
  • operator एक keyword है.
  • symbol एक operator है जिसे हम overload करना चाहते है.
  • arguments, फंक्शन को pass किये जाने वाले arguments है.

Rules of Operator Overloading in Hindi – ऑपरेटर ओवरलोडिंग के नियम

इसके कुछ महत्वपूर्ण rules है जिन्हें हमें ध्यान में रखना होता है.

  • केवल built-in operators को ही overload किया जा सकता है. यदि कुछ ऑपरेटर C++ में मौजूद नहीं है तो हम उन्हें overload नहीं कर सकते.
  • Operators की precedence और associativity को बदला नहीं जा सकता.
  • किसी विशेष operators को overload करने के लिए हम friend function का इस्तेमाल नहीं कर सकते. परन्तु, हम इन operators को overload करने के लिए member function का प्रयोग कर सकते हैं.
  • assignment “=”, subscript “[]”, function call “()” और arrow operator “->” को member function के रूप में define करना आवश्य होता है.
  • overload किये हुए operator में user-defined data type का कम से कम एक operand शामिल होना चाहिए.
  • overload किया हुआ ऑपरेटर default parameters को hold नहीं कर सकता.
  • कुछ operators जैसे कि – assignment “=”, address “&”, और comma “,” पहले से ही overload होते है.
  • Operators की arity (योग्यता) को बदला नहीं जा सकता. अर्थात, unary जो है वह unary रहेगा. binary, binary रहेगा आदि.

Operator overloading का example

नीचे आपको इसका example दिया गया है:-

#include <iostream>   
using namespace std;
class Demo {
private:
int y;

public:
Demo() : y(19) {}
void operator ++() {
y = y + 2;
}
void Print() {
cout << "The Count is: " << y;
}
};
int main() {
Demo dd;
++dd;   
dd.Print();
return 0;
}

इसका आउटपुट:– The Count is: 21

इसे पढ़ें:- C++ में, function overloading क्या है?

C++ में Operator Overloading को Implement करना –

C++ में, निम्नलिखित functions को implement करके ऑपरेटर ओवरलोडिंग को perform कर सकते हैं:-

  1. Member function
  2. Non-member function
  3. Friend function

Operator overloading का फंक्शन member function हो सकता है यदि left operand उस class का एक object हो. परन्तु यदि left operand अलग होता है तब operator overloading का फंक्शन non-member function अवश्य  होना चाहिए.

ऑपरेटर ओवरलोडिंग के function को तब friend function बनाया जाता है जब class के private और protected members को access करने की आवश्यकता होती है.

References:- https://www.guru99.com/cpp-operator-overloading.html

Operator Overloading in C++ in Hindi

निवेदन:- अगर आपके लिए यह article उपयोगी रहा हो तो इसे अपने friends के साथ अवश्य share कीजिये. और आपके ऑपरेटर ओवरलोडिंग से सम्बन्धित कोई सवाल हो तो उसे comment करके बताइए.

अगर आपका कोई सुझाव है या किसी अन्य subjects से सम्बन्धित कोई question हो तो उसे भी नीचे कमेंट करके बता सकते है. मैं उसे एक दो दिन में add कर दूंगा. Thanks.

1 thought on “Operator Overloading in C++ in Hindi – ऑपरेटर ओवरलोडिंग क्या है?”

Leave a Comment