Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में कीवर्ड को ओवरराइड करें

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

लेकिन ऐसी स्थिति हो सकती है जब कोई प्रोग्रामर उस फंक्शन को ओवरराइड करते समय गलती कर दे। जैसे यदि हस्ताक्षर समान नहीं है, तो उसे एक अन्य फ़ंक्शन के रूप में माना जाएगा, लेकिन ओवरराइड विधि या वह नहीं। उस स्थिति में, हम ओवरराइड कीवर्ड का उपयोग कर सकते हैं। यह कीवर्ड C+ +11 में पेश किया गया है। जब कंपाइलर को इस तरह का कीवर्ड मिल जाता है, तो वह समझ सकता है कि यह उसी क्लास का ओवरराइड वर्जन है।

आइए अवधारणा को समझने के लिए उदाहरण देखें।

उदाहरण

#include <iostream>
using namespace std;
class BaseClass{
   public:
      virtual void display() {
         cout << "Displaying from Base Class\n";
      }
};
class DerivedClass : public BaseClass{
   public:
      void display() {
         cout << "Displaying from Derived Class\n";
      }
};
main() {
   BaseClass *b_ptr;
   b_ptr = new DerivedClass();
   b_ptr->display();
}

आउटपुट

Displaying from Derived Class

इस मामले में कार्यक्रम ठीक काम कर रहा है क्योंकि हस्ताक्षर समान हैं। निम्नलिखित उदाहरण में, हस्ताक्षर भिन्न होंगे। ओवरराइड कीवर्ड के लिए, यह एक त्रुटि उत्पन्न करेगा।

उदाहरण

#include <iostream>
using namespace std;
class BaseClass{
   public:
      virtual void display() {
         cout << "Displaying from Base Class\n";
      }
};
class DerivedClass : public BaseClass{
   public:
      void display(int x) override{
         cout << "Displaying from Derived Class\n";
      }
};
main() {
   BaseClass *b_ptr;
   b_ptr = new DerivedClass();
   b_ptr->display();
}

आउटपुट

[Error] 'void DerivedClass::display(int)' marked override, but does not override

इस मामले में, कार्यक्रम ठीक काम कर रहा है क्योंकि हस्ताक्षर समान हैं। निम्नलिखित उदाहरण में, हस्ताक्षर भिन्न होंगे। ओवरराइड कीवर्ड के लिए, यह त्रुटि उत्पन्न करेगा।


  1. C++ में एकाधिक वंशानुक्रम

    एकाधिक वंशानुक्रम तब होता है जब एक वर्ग एक से अधिक आधार वर्ग से विरासत में मिलता है। तो वर्ग एकाधिक वंशानुक्रम का उपयोग करके कई आधार वर्गों से सुविधाओं को प्राप्त कर सकता है। यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज जैसे C++ की एक महत्वपूर्ण विशेषता है। एक आरेख जो एकाधिक वंशानुक्रम प्रदर्शित करता

  1. सी ++ में स्थानीय कक्षा

    किसी फ़ंक्शन के अंदर घोषित एक वर्ग को C++ में स्थानीय वर्ग के रूप में जाना जाता है क्योंकि यह उस फ़ंक्शन के लिए स्थानीय होता है। स्थानीय वर्ग का एक उदाहरण इस प्रकार दिया गया है। #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main()

  1. सी # में स्थिर कीवर्ड

    हम स्थिर कीवर्ड का उपयोग करके वर्ग के सदस्यों को स्थिर के रूप में परिभाषित कर सकते हैं। जब हम किसी वर्ग के सदस्य को स्थैतिक घोषित करते हैं, तो इसका मतलब है कि वर्ग की कितनी भी वस्तुएँ बनाई जाएँ, स्थिर सदस्य की केवल एक प्रति है। कीवर्ड स्टैटिक का तात्पर्य है कि एक वर्ग के लिए सदस्य का केवल एक उदाहरण