📜  C++ 派生类中的虚函数

📅  最后修改于: 2022-05-13 01:55:07.821000             🧑  作者: Mango

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