C++使用多态的例子
时间: 2024-08-14 19:06:43 浏览: 47
c++ 的封装继承多态例子
在C++中,多态的一个常见例子是通过虚函数(Virtual Functions)来实现。虚函数是在基类声明的,但在派生类中可以被重写。下面是一个简单的例子:
```cpp
// 定义一个基类 Animal
class Animal {
public:
virtual void speak() { cout << "This is an animal." << endl; }
};
// 派生出两个子类:Dog 和 Cat
class Dog : public Animal {
public:
void speak() override { cout << "Woof!" << endl; }
};
class Cat : public Animal {
public:
void speak() override { cout << "Meow!" << endl; }
};
// 使用 Animal 类型的指针指向不同的子类对象
Animal* animals = {new Dog(), new Cat()};
// 调用 speak() 函数,会根据实际对象类型执行对应的子类方法
for (int i = 0; i < 2; i++) {
animals[i]->speak();
}
```
在这个例子中,`speak()`函数是虚函数,所以当你通过`Animal`类型的指针调用它时,实际上执行的是子类`Dog`或`Cat`的方法。这就是C++中的动态绑定,也称为运行时多态。
阅读全文