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