在C++中定义虚函数需在成员函数前加virtual关键字,用于实现运行时多态;2. 虚函数允许派生类重写基类函数,通过基类指针调用时执行派生类版本;3. 纯虚函数以virtual声明并赋值=0,使类成为抽象类,不可实例化;4. 包含纯虚函数的类必须由派生类实现对应函数才能创建对象;5. 示例中Animal类的speak为虚函数,Dog类重写后通过基类指针调用输出“Dog barks!”,体现多态特性。

在C++中,定义一个虚函数的方法是在成员函数声明前加上 virtual 关键字。虚函数主要用于实现多态,允许派生类重写(override)基类的函数行为。
虚函数的基本语法
在类的定义中,使用 virtual 修饰成员函数:class Base {
public:
virtual void func();
};
这样,func() 就是一个虚函数。如果派生类中也定义了同名、同参数的函数,就会覆盖基类的实现。
纯虚函数的定义方法
如果想定义一个不能被实例化的抽象基类,可以使用纯虚函数:class Base {
public:
virtual void func() = 0;
};
立即学习“C++免费学习笔记(深入)”;
带有 = 0 的虚函数就是纯虚函数。包含纯虚函数的类称为抽象类,不能创建对象,必须由派生类实现该函数才能实例化。
实际使用示例
下面是一个简单的例子说明虚函数如何支持多态:
#include
using namespace std;
class Animal {
public:
virtual void speak() {
cout << "Animal speaks!" << endl;
}
};class Dog : public Animal {
public:
void speak() override {
cout << "Dog barks!" << endl;
}
};int main() {
Animal* a = new Dog();
a->speak(); // 输出: Dog barks!
delete a;
return 0;
}
这里通过基类指针调用 speak(),实际执行的是派生类的版本,体现了运行时多态。
基本上就这些。虚函数是C++面向对象编程的重要机制,掌握定义方式和使用场景很关键。











