上面的问题用c++语言来实现
时间: 2024-11-03 21:23:18 浏览: 6
C++ 实现汉诺塔的实例详解
5星 · 资源好评率100%
在C++中,多态通常通过虚函数(Virtual Functions)和继承来实现。下面是一个简单的例子:
```cpp
// 定义一个基类 Animal
class Animal {
public:
virtual void makeSound() { // 虚函数声明
cout << "Animal makes a sound" << endl;
}
};
// 子类 Dog 继承自 Animal 并重写 makeSound()
class Dog : public Animal {
public:
void makeSound() override { // 通过override关键字显式标记为重写
cout << "Dog barks" << endl;
}
};
// 子类 Cat 同样继承自 Animal 并重写 makeSound()
class Cat : public Animal {
public:
void makeSound() override {
cout << "Cat meows" << endl;
}
};
int main() {
Animal* animalPtr; // 创建 Animal 类型的指针
// 动物数组,存储不同类型的具体对象引用
Animal animals[] = {Dog(), Cat()};
// 通过基类指针遍历动物数组,体现多态
for (auto& animal : animals) {
animal.makeSound(); // 父类指针调用的是子类的函数
}
return 0;
}
```
在这个例子中,`makeSound()` 方法在 `Animal` 的派生类中被覆盖,通过基类指针调用时会执行相应子类的行为,体现了多态性。
阅读全文