ऑपरेटर ओवरलोडिंग - Operator Overloading का क्या मतलब है?

ऑपरेटर ओवरलोडिंग एक ऐसी तकनीक है जिसके द्वारा एक प्रोग्रामिंग भाषा में उपयोग किए जाने वाले ऑपरेटरों को कस्टमाइज्ड लॉजिक के साथ यूजर-डिफ़ाइंड प्रकारों में लागू किया जाता है जो पास किए गए तर्कों के प्रकार पर आधारित होता है।

ऑपरेटर ओवरलोडिंग संचालन के लिए उपयोगकर्ता-परिभाषित कार्यान्वयन के विनिर्देश की सुविधा प्रदान करता है जिसमें एक या दोनों ऑपरेंड उपयोगकर्ता-परिभाषित वर्ग या संरचना प्रकार के होते हैं। यह उपयोगकर्ता-परिभाषित प्रकारों को मूलभूत आदिम डेटा प्रकारों की तरह व्यवहार करने में मदद करता है। ऑपरेटर ओवरलोडिंग उन मामलों में सहायक होता है जहां कुछ प्रकार के लिए उपयोग किए जाने वाले ऑपरेटर प्रोग्रामिंग भाषा में पाए जाने वाले डोमेन संदर्भ और सिंटैक्टिक समर्थन से संबंधित शब्दार्थ प्रदान करते हैं। इसका उपयोग वाक्यात्मक सुविधा, पठनीयता और रखरखाव के लिए किया जाता है।

जावा ऑपरेटर ओवरलोडिंग का समर्थन नहीं करता है, स्ट्रिंग संघनन को छोड़कर जिसके लिए यह आंतरिक रूप से + ऑपरेटर को ओवरलोड करता है।

ऑपरेटरों को अभिव्यक्तियों में ऑपरेटर नोटेशन और घोषणाओं में कार्यात्मक नोटेशन का उपयोग करके संदर्भित किया जाता है। उपयोगकर्ता-परिभाषित ऑपरेटर घोषणाओं का उपयोग करके एक ऑपरेटर के वाक्य-विन्यास, पूर्वता और साहचर्य को नहीं बदला जा सकता है।

उदाहरण के लिए, C# में ऑपरेटरों को उनके द्वारा किए जाने वाले ऑपरेशन के प्रकार के आधार पर वर्गीकृत किया जाता है। उनमें से कुछ को स्थिर सदस्य कार्यों में परिभाषित करके और ऑपरेटर कीवर्ड का उपयोग करके उपयोगकर्ता-परिभाषित प्रकारों में अतिभारित किया जाता है। ऑपरेटर फ़ंक्शन के पैरामीटर ऑपरेंड का प्रतिनिधित्व करते हैं, जबकि ऑपरेटर फ़ंक्शन का रिटर्न प्रकार ऑपरेशन के परिणाम का प्रतिनिधित्व करता है। ऑपरेटरों के लिए जोड़े में ओवरलोडिंग लागू की जाती है, जैसे "==" और "!=" जैसे तुलना ऑपरेटर। संकलक चेतावनी से बचने के लिए इन ऑपरेटरों के लिए बराबर () विधि को ओवरराइड किया जाना चाहिए। सशर्त, तार्किक (और !!), असाइनमेंट (+=, -=, आदि), कास्टिंग और सरणी अनुक्रमण ([]) जैसे ऑपरेटरों के लिए ओवरलोडिंग का उपयोग नहीं किया जाना चाहिए।

यह अत्यधिक अनुशंसा की जाती है कि ऑपरेटर ओवरलोडिंग को इस तरह लागू किया जाए कि उत्पादित परिणाम वही हों जो ऑपरेटर के डिफ़ॉल्ट कार्यान्वयन से सहज रूप से अपेक्षित हों। कुछ गणितीय नियम जैसे कि क्रमविनिमेय कानून, दो ऑपरेंड वाले भावों पर लागू होते हैं, जब वे प्रकारों के लिए ओवरलोडिंग में उपयोग किए जाते हैं तो लागू नहीं हो सकते क्योंकि वे केवल संख्यात्मक ऑपरेंड के लिए परिभाषित होते हैं।

Post a Comment

0 Comments