如何使用虚函数实现多态性?
时间: 2024-03-24 21:40:03 浏览: 55
使用虚函数可以实现多态性。在C++中,将一个基类中的函数声明为虚函数,派生类中重写该虚函数,则在运行时会根据实际对象的类型来调用相应的函数,这就是多态性。具体实现步骤如下:
1. 在基类中声明虚函数。通过在函数声明前加上关键字virtual来声明一个虚函数。
2. 在派生类中重写虚函数。在派生类中重新定义该虚函数,函数名、参数类型和返回类型都必须与基类中的虚函数完全相同。
3. 创建对象并调用虚函数。通过创建基类对象或派生类对象,然后调用虚函数,可以实现多态性。
例如:
```
class Animal {
public:
virtual void speak() {
cout << "Animal speaks!" << endl;
}
};
class Cat : public Animal {
public:
void speak() {
cout << "Cat meows!" << endl;
}
};
int main() {
Animal* animal1 = new Animal();
Animal* animal2 = new Cat();
animal1->speak(); // 输出:Animal speaks!
animal2->speak(); // 输出:Cat meows!
return 0;
}
```
在上述代码中,Animal类中的speak函数被声明为虚函数,并在Cat类中被重写。在main函数中,通过创建Animal对象和Cat对象,并分别调用speak函数,可以看到根据对象的实际类型,调用的函数不同,实现了多态性。
阅读全文