通过虚函数使基类的实例化对象调用派生类中的同名函数
时间: 2023-06-17 07:08:18 浏览: 109
在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数。下面就是一个例子:
5星 · 资源好评率100%
是的,您可以通过在基类中声明一个虚函数,并在派生类中重写该函数来实现基类的实例化对象调用派生类中的同名函数。这就是C++中的多态性。下面是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
class Animal {
public:
virtual void speak() {
cout << "Animal speaking!" << endl;
}
};
class Cat : public Animal {
public:
void speak() {
cout << "Meow!" << endl;
}
};
int main() {
Animal* animal = new Cat();
animal->speak(); // 输出 Meow!
return 0;
}
```
在这个例子中,Animal是基类,Cat是派生类。Animal中声明了一个虚函数speak(),并在Cat中重写了该函数。在main函数中,我们实例化了一个Cat对象,但将其指针赋值给了Animal类型的指针。当我们调用animal->speak()时,由于speak()是虚函数,程序会动态地绑定到Cat中重写的speak()函数,输出"Meow!"。这就是多态的实现。
阅读全文