C++ 派生类中的虚函数
虚函数是被派生类覆盖的基类的成员函数。当您使用指向基类的指针或引用来引用派生类对象时,您可以为该对象调用虚函数并让它运行派生类的函数版本。
在 C++ 中,一旦成员函数在基类中声明为虚函数,它在从该基类派生的每个类中都变为虚函数。换句话说,在声明虚拟基类函数的重新定义版本时,不必在派生类中使用关键字 virtual。
例如,以下程序打印“C::fun() called”,因为 B::fun() 自动变为虚拟。
CPP
// CPP Program to demonstrate Virtual
// functions in derived classes
#include
using namespace std;
class A {
public:
virtual void fun() { cout << "\n A::fun() called "; }
};
class B : public A {
public:
void fun() { cout << "\n B::fun() called "; }
};
class C : public B {
public:
void fun() { cout << "\n C::fun() called "; }
};
int main()
{
C c; // An object of class C
B* b = &c; // A pointer of type B* pointing to c
b->fun(); // this line prints "C::fun() called"
getchar();
return 0;
}
输出
C::fun() called