私のC++プログラムでは:
#include<iostream.h>
class A
{
public:
virtual void func()
{
cout<<"In A"<<endl;
}
};
class B:public A
{
public:
void func()
{
cout<<"In B"<<endl;
}
};
class C:public B
{
public:
void func()
{
cout<<"In C"<<endl;
}
};
int main()
{
B *ptr=new C;
ptr->func();
}
ステートメントはを呼び出す必要がありますB::func()
。ただし、関数C::func()
は呼び出されます。これに少し光を当ててください。'クラスA'で仮想キーワードが削除されると、これは発生しなくなります。