🟣 C++ Language • Hindi Tutorial Lesson 12/20

operator overloading in c++

जैसा की आपको पता है, class एक user defined data type होती है। C++ में provide किये गए


operators


primitive types (integer,


floating point, character) variables साथ विभिन्न operations (Addition, Division, Multiplication आदि) perform करते है। लेकिन इन operators को यूज़ करके आप class के variables (objects) के साथ कोई भी operations perform at error generate होगी।


उदाहरण के लिए आप एक class के 2 objects को इन operators द्वारा add नहीं कर सकते है। लेकिन जैसा की मैने आपको पहले tutorials में बताया की class types पर भी आप normal variables की तरह ही operations perform कर सकते है। इसके लिए C++ आपको एक mechanism provide करती है जिसे operator overloading कहते है ।


इस mechanism में आप operators की meaning को change करके उन्हें दूसरी meaning देते है। इन operators को meaning इस प्रकार दी जाती है की ये class type के variables (objects के साथ भी काम कर सकें। उदाहरण के लिए आप Addition (+) operator को overload करके उसे इस प्रकार change कर सकते है की वो किसी clas के 2 objects को add कर दे ताकि आप उस resul को किसी तीसरे object में store कर सकें।


Operator overloading का मतलब operators का अर्थ बदलना होता है। ये अर्थ सिर्फ user defined data types जैसे की class आदि के संदर्भ में ही बदलता है। Primitive types के साथ operators को उसी प्रकार यूज़ किया जा सकता है जैसे की आप operator overloading से पहले करते थे।


Operator overloading एक बहुत ही interestin feature है। लेकिन कुछ ऐसे भी operators है जिन आप overload नहीं कर सकते है। इनके बारे में नीचे दिया जा रहा है।


Class member access operators (., . *)


Scope resolution operator (::)


Size of operator (sizeof)


Conditional Operator (? :)


ऊपर दिए गए operators को छोड़कर आप C++ के सभी operators को overload कर सकते है।


हालाँकि operator overloading द्वारा आप operators का मतलब बदल सकते है, लेकिन उनका syntax नहीं change किया जा सकता है। उदाहरण के लिए multiplication operation के लिए 2 operands का होना जरुरी है, इसे change नहीं किया जा सकता है। साथ ही operators की precedence (order) भी नहीं बदलती है।