📅  最后修改于: 2023-12-03 15:13:58.239000             🧑  作者: Mango
虚函数是一个在基类中声明的函数,用关键字 virtual
声明,被派生类重新定义后,用派生类对象调用时,能够根据对象的类型自动选择调用相应的派生类函数。
class Base {
public:
virtual ~Base() {} // 声明虚析构函数
virtual void foo() { cout << "Base: foo" << endl; }
};
class Derived : public Base {
public:
virtual void foo() override { cout << "Derived: foo" << endl; }
};
虚函数使得我们可以通过基类指针或引用调用派生类的函数,由于绑定的是运行时类型,所以不需要手动指定调用的函数,避免了手动的 switch 或 if 判断,使得程序更加灵活和扩展性高。
Base* base = new Derived();
base->foo(); // 输出 Derived: foo
override
关键字声明,避免出现意外的问题。虚函数是 C++ 面向对象编程中的重要特性,通过它我们可以实现多态、继承等 OO 概念。使用虚函数可以让程序更加灵活和具有扩展性,但也要注意虚函数的注意事项,以避免出现程序错误。