वर्चुअल फंक्शन और फंक्शन ओवरराइडिंग में क्या अंतर है?
वर्चुअल फंक्शन और फंक्शन ओवरराइडिंग में क्या अंतर है?

वीडियो: वर्चुअल फंक्शन और फंक्शन ओवरराइडिंग में क्या अंतर है?

वीडियो: वर्चुअल फंक्शन और फंक्शन ओवरराइडिंग में क्या अंतर है?
वीडियो: C++ में फ़ंक्शन ओवरराइडिंग | कोडिंग सीखें 2024, अप्रैल
Anonim

आभासी कार्य स्थिर नहीं हो सकता और मित्र भी नहीं हो सकता समारोह दूसरे वर्ग का। वे हमेशा बेस क्लास में परिभाषित होते हैं और ओवरराइड व्युत्पन्न वर्ग में। व्युत्पन्न वर्ग के लिए यह अनिवार्य नहीं है अवहेलना (या फिर से परिभाषित करें आभासी समारोह ), उस स्थिति में बेस क्लास संस्करण समारोह प्रयोग किया जाता है।

इसके अलावा, वर्चुअल फंक्शन और प्योर वर्चुअल फंक्शन में क्या अंतर है?

मुख्य के बीच अंतर ' वर्चुअल फंक्शन' और 'प्योर वर्चुअल फंक्शन' ' क्या वह ' आभासी समारोह ' इसकी परिभाषा है में बेस क्लास और विरासत में मिली व्युत्पन्न कक्षाएं इसे फिर से परिभाषित करती हैं। NS शुद्ध आभासी कार्य इसकी कोई परिभाषा नहीं है में बेस क्लास, और सभी विरासत में मिली व्युत्पन्न कक्षाओं को इसे फिर से परिभाषित करना होगा।

इसके बाद, प्रश्न यह है कि C++ में फंक्शन ओवरराइडिंग क्या है? सी++ फंक्शन ओवरराइडिंग . यदि व्युत्पन्न वर्ग समान परिभाषित करता है समारोह जैसा कि इसके आधार वर्ग में परिभाषित किया गया है, इसे के रूप में जाना जाता है फ़ंक्शन ओवरराइडिंग सी ++ में। इसका उपयोग रनटाइम बहुरूपता प्राप्त करने के लिए किया जाता है। यह आपको विशिष्ट कार्यान्वयन प्रदान करने में सक्षम बनाता है समारोह जो पहले से ही इसके बेस क्लास द्वारा प्रदान किया गया है।

इसी तरह, लोग पूछते हैं, हम वर्चुअल फ़ंक्शंस का उपयोग क्यों करते हैं?

आभासी कार्य हैं उपयोग किया गया "रन टाइम पॉलीमॉर्फिज्म" का समर्थन करने के लिए। जब आभासी समारोह बेस क्लास पॉइंटर का उपयोग करके कॉल किया जाता है, कंपाइलर रनटाइम पर तय करता है कि का कौन सा संस्करण है समारोह यानी बेस क्लास वर्जन या ओवरराइड व्युत्पन्न क्लास वर्जन को कॉल करना है। इसे रन टाइम पॉलीमॉर्फिज्म कहा जाता है।

क्या आप सी ++ में एक गैर वर्चुअल फ़ंक्शन को ओवरराइड कर सकते हैं?

सी ++ में, सभी वर्ग सदस्य कार्यों हैं गैर - आभासी डिफ़ॉल्ट रूप से। वे कर सकते हैं बनाया जा आभासी का उपयोग करके आभासी में कीवर्ड समारोह हस्ताक्षर। जैसा की ऊपर कहा गया है अगर NS समारोह बेस क्लास का बना है आभासी फिर समारोह व्युत्पन्न या बाल वर्ग का समारोह एक ही नाम के साथ ओवरराइड कर सकते हैं बेस क्लास समारोह.

सिफारिश की: