请用C/C++实现以上代码
时间: 2024-09-06 17:01:28 浏览: 36
由于您没有提供具体的代码需求,我将给出一个简单的C++代码示例来演示类的继承和多态性的概念。在这个例子中,我们将创建一个基类`Animal`和两个派生类`Dog`和`Cat`,然后通过基类的指针调用不同派生类的方法来展示多态性。
```cpp
#include <iostream>
// 基类
class Animal {
public:
virtual void makeSound() const {
std::cout << "This animal makes a sound." << std::endl;
}
virtual ~Animal() {}
};
// 派生类 Dog
class Dog : public Animal {
public:
void makeSound() const override {
std::cout << "Woof! Woof!" << std::endl;
}
};
// 派生类 Cat
class Cat : public Animal {
public:
void makeSound() const override {
std::cout << "Meow! Meow!" << std::endl;
}
};
// 函数展示多态
void makeAnimalSound(const Animal& animal) {
animal.makeSound();
}
int main() {
Animal* animalPtr = nullptr;
// 创建Dog对象并调用makeSound
animalPtr = new Dog();
makeAnimalSound(*animalPtr);
// 创建Cat对象并调用makeSound
animalPtr = new Cat();
makeAnimalSound(*animalPtr);
// 清理内存
delete animalPtr;
return 0;
}
```
在这个例子中,`Animal`类有一个虚拟成员函数`makeSound`,`Dog`和`Cat`类继承自`Animal`并重写了`makeSound`方法。在`makeAnimalSound`函数中,我们通过传入的`Animal`引用调用`makeSound`函数,这展示了多态性——根据传入对象的实际类型,调用相应的方法。
阅读全文