আপনি যদি তার উত্পন্ন শ্রেণি থেকে বেস ক্লাসের কোনও ফাংশন কল করতে চান তবে বেস ক্লাসের নাম উল্লেখ করে ওভাররাইড ফাংশনের ভিতরে কেবল কল করতে পারেন (যেমন: ফু :: প্রিন্টস্টফ () )।
কোড এখানে যায়
#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();
}