Temel sınıfın bir işlevini türetilmiş sınıftan çağırmak istiyorsanız, temel sınıf adından ( Foo :: printStuff () gibi ) bahsederek yalnızca geçersiz kılınan işlevin içinde çağrı yapabilirsiniz .
kod buraya gidiyor
#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();
}
Yine çalışma zamanında hangi sınıfın nesnesini (türetilmiş veya temel) kullanarak çağrılacak işlevi belirleyebilirsiniz.Ancak bu, temel sınıftaki işlevinizin sanal olarak işaretlenmesi gerektiğini gerektirir.
aşağıdaki kod
#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();
}