सी ++ में, हम फ़ंक्शन ओवरलोडिंग तकनीकों का उपयोग कर सकते हैं। लेकिन अगर कुछ बेस क्लास में ओवरलोडेड फॉर्म (एक ही नाम के साथ अलग-अलग फंक्शन सिग्नेचर) में एक मेथड है, और व्युत्पन्न क्लास किसी एक फंक्शन को फिर से परिभाषित करता है जो बेस के अंदर मौजूद है, तो उस फंक्शन के सभी ओवरलोडेड वर्जन को छिपा दिया जाएगा। व्युत्पन्न वर्ग।
आइए स्पष्ट विचार प्राप्त करने के लिए एक उदाहरण देखें।
उदाहरण
#include <iostream> using namespace std; class MyBaseClass { public: void my_function() { cout << "This is my_function. This is taking no arguments" << endl; } void my_function(int x) { cout << "This is my_function. This is taking one argument x" << endl; } }; class MyDerivedClass : public MyBaseClass { public: void my_function() { cout << "This is my_function. From derived class, This is taking no arguments" << endl; } }; main() { MyDerivedClass ob; ob.my_function(10); }
आउटपुट
[Error] no matching function for call to 'MyDerivedClass::my_function(int)' [Note] candidate is: [Note] void MyDerivedClass::my_function() [Note] candidate expects 0 arguments, 1 provided