यदि आप इसके व्युत्पन्न वर्ग से बेस क्लास के एक फ़ंक्शन को कॉल करना चाहते हैं, तो आप बेस क्लास नाम (जैसे फू: प्रिंटस्टफ़ () ) का उल्लेख करके ओवरराइड फ़ंक्शन के अंदर कॉल कर सकते हैं ।
कोड यहाँ जाता है
#include <iostream>
using namespace std;
class Foo
{
public:
int x;
virtual void printStuff()
{
cout<<"Base Foo printStuff called"<<endl;
}
};
class Bar : public Foo
{
public:
int y;
void printStuff()
{
cout<<"derived Bar printStuff called"<<endl;
Foo::printStuff();/////also called the base class method
}
};
int main()
{
Bar *b=new Bar;
b->printStuff();
}
फिर से आप रनटाइम पर निर्धारित कर सकते हैं कि उस वर्ग (व्युत्पन्न या आधार) के ऑब्जेक्ट का उपयोग करने के लिए कौन सा फ़ंक्शन है। लेकिन इसके लिए बेस क्लास में आपके फ़ंक्शन को वर्चुअल के रूप में चिह्नित किया जाना चाहिए।
नीचे कोड
#include <iostream>
using namespace std;
class Foo
{
public:
int x;
virtual void printStuff()
{
cout<<"Base Foo printStuff called"<<endl;
}
};
class Bar : public Foo
{
public:
int y;
void printStuff()
{
cout<<"derived Bar printStuff called"<<endl;
}
};
int main()
{
Foo *foo=new Foo;
foo->printStuff();/////this call the base function
foo=new Bar;
foo->printStuff();
}