Operator Overloading in C++

CPP Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C++ Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C++ Programming Language in Hindi | Page: 666 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Operator Overloading in C++: आपने देखा है कि “C++” में किस प्रकार से एक ही नाम के कई Functions को कई अलग-अलग कामों के लिये प्रयोग में लाया जा सकता है, जिसे Function Overloading कहा जाता है। Function Overloading का फायदा ये है कि Class को Use करने वाले Programmer को ढेर सारे Functions के ढेर सारे नामों को याद रखने की जरूरत नहीं होती है।

जिस तरह से हम Functions की Overloading कर सकते हैं ठीक इसी प्रकार से हम Basic प्रकार के विभिन्न Operators को भी कई अलग-अलग कामों के लिये उपयोग में ला सकते हैं और इस प्रक्रिया को Operator Overloading कहा जाता है।

जैसे यदि हमें int प्रकार के दो मानों a व b को जोडना हो तो हम a + b Expression का प्रयोग करते हैं। लेकिन यदि हमें हमारी बनाई गई किसी Class के Objects के Data Members के मानों को आपस में जोडना हो, तो हम ये काम Operator Overloading द्वारा कर सकते हैं। Operator Overloading से हमारा Program समझने में सरल व गति में Fast हो जाता है। Operators को मुख्‍यतया दो भागों में बांटा जा सकता है:

 (1) Binary             (2) Unary

Binary Operators वे Operators होते हैं जिन्हें काम करने के लिए दो Operands की जरूरत होती है, जबकि Unary Operators एक Single Operand पर Perform होते हैं। हमने पिछले अध्‍याय में 1-Argument Constructor का प्रयोग करके Basic प्रकार के Data को Class प्रकार के Data व Class प्रकार के Data को Basic प्रकार के Data में Convert किया है। Conversion Operators की Overloading से काफी हद तक सम्बद्ध है। हम विभिन्न प्रकार के Built – In Cast Operators जैसे कि int(), float() व long() को भी Overload कर सकते हैं और Class प्रकार के Data पर समान प्रक्रिया करने के लिए प्रेरित कर सकते हैं।

  Why Overload Operators? Operators की Overloading करके हम ठीक उसी प्रकार से किसी class के Objects के साथ विभिन्न प्रकार की प्रक्रियाऐं कर सकते हैं, जिस प्रकार से किसी सामान्‍य Data Type के Variable के साथ करते हैं। जैसे यदि हमें TTime class के दो Objects को जोडना हो तो हम ठीक उसी प्रकार से ये काम कर सकते हैं जिस प्रकार से दो int प्रकार के Variables को जोडते हैं। यानी:

TT3 = TT1 + TT2;

 चूंकि हम जो भी class बनाते हैं, उसके Objects के साथ किस प्रकार से विभिन्न प्रकार की प्रक्रियाऐं करनी हैं, इसके बारे में Compiler कुछ भी नहीं जानता है। Operator Overloading द्वारा हम Compiler को यही समझाते हैं कि किस प्रकार से किसी class के Objects के साथ जोड, गुणा आदि प्रक्रिया ठीक उसी प्रकार से करनी है, जिस प्रकार से Basic Data Type के Variables के साथ करते हैं। मान लो कि हमारे पास TTime class के दो Objects हैं जिन्हें जोडना है तो हम इसे निम्नानुसार कर सकते हैं:

Time3.sum(Time1, Time2);

 यानी एक तीसरा Object लेंगे और एक Member Function द्वारा जोडे जाने वाले दोनों TTime Object के मानों को Function में Argument के रूप में भेज कर उनके Data Members का आपस में योग करेंगे और Return मान Time3 Object को प्रदान कर देंगे। इसी काम को करने के लिए हम निम्नानुसार दूसरा Statement भी लिख सकते हैं:

Time3 = Time1.sum(Time2);

 इस Statement में एक TTime Object को Argument के रूप में दूसरे Object के Member Function में भेजते हैं और इस Object के Data Members के मानों को प्रथम Object के Data Members में जोड कर एक Copy Constructor द्वारा जोडे गए मानों को तीसरे Object को Memberwise Initialize कर देते हैं।  हम जो कुछ भी Overloaded Operator द्वारा करते हैं वो सब कुछ Functions के प्रयोग द्वारा भी कर सकते हैं।

Operators की Overloading “C++” को किसी प्रकार की कोई Extra Ability प्रदान नहीं करता है। लेकिन Overloaded Operators के प्रयोग से प्रोग्राम को पढना, लिखना व Maintain करना अपेक्षाकृत आसान हो जाता है। Operator Overloading का प्रयोग सभी प्रकार की Class के साथ नहीं किया जा सकता है। जैसे किसी Employee class के दो employees को जोडना एक तर्कसंगत बात नहीं हो सकती है। यानी निम्न Statement कोई महत्व प्रदर्शित नहीं करता है:

emp3 = emp1 + emp2;

इसी तरह से हम सभी प्रकार के Operators को भी Overload नहीं कर सकते हैं। हम केवल Built-in Operators को ही Overload कर सकते हैं। Dot, Scope Resolution या Ternary Operator व इसी तरह के कई अन्‍य Operators को हम Overload नहीं कर सकते हैं। (Operator Overloading in C++ – Wiki)

C++ const Function
Arithmetic Operator Overloading

CPP Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C++ Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C++ Programming Language in Hindi | Page: 666 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Download All Hindi EBooks

सभी हिन्दी EBooks C, C++, Java, C#, ASP.NET, Oracle, Data Structure, VB6, PHP, HTML5, JavaScript, jQuery, WordPress, etc... के DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।