Jika Anda ingin memanggil fungsi kelas dasar dari kelas turunannya, Anda bisa memanggil fungsi overridden dengan menyebutkan nama kelas dasar (seperti Foo :: printStuff () ).
kode di sini
#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();
}
Sekali lagi Anda dapat menentukan pada saat runtime fungsi mana untuk memanggil menggunakan objek dari kelas itu (diturunkan atau basis). Tetapi ini membutuhkan fungsi Anda di kelas dasar harus ditandai sebagai virtual.
kode di bawah ini
#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();
}