写一个c++多态的例子
时间: 2024-05-05 21:16:09 浏览: 205
C++ 多态 实例
以下是一个C++多态的例子:
```
#include <iostream>
using namespace std;
// 基类
class Animal {
public:
virtual void sound() {
cout << "动物发出声音" << endl;
}
};
// 派生类
class Dog : public Animal {
public:
void sound() {
cout << "狗叫:汪汪汪!" << endl;
}
};
// 派生类
class Cat : public Animal {
public:
void sound() {
cout << "猫叫:喵喵喵!" << endl;
}
};
int main() {
Animal *animal;
Dog dog;
Cat cat;
animal = &dog;
animal->sound();
animal = &cat;
animal->sound();
return 0;
}
```
在这个例子中,我们定义了一个基类`Animal`和两个派生类`Dog`和`Cat`。在基类中,我们定义了一个虚函数`sound()`,它可以被派生类重写。在`main()`函数中,我们声明了一个指向基类对象的指针`animal`。然后我们将这个指针分别指向`Dog`和`Cat`对象,并分别调用它们的`sound()`函数。由于`sound()`函数是虚函数,因此程序会根据指针所指向的对象类型来动态地调用相应的函数,这就是多态的体现。
阅读全文