湖南大学程序设计作业多态与继承
时间: 2024-12-28 18:25:31 浏览: 34
### 关于多态与继承的程序设计作业资料
#### 湖南大学程序设计课程中的多态与继承示例代码
在湖南大学程序设计实验课程中,学生可以通过一系列实践项目深入了解C++编程语言的关键特性。其中,多态性和继承是面向对象编程的重要组成部分。
#### 示例代码展示
下面是一个简单的C++代码片段,展示了如何利用继承和多态性创建基类`Animal`及其派生类`Dog`和`Cat`:
```cpp
#include <iostream>
using namespace std;
// 定义一个抽象基类 Animal
class Animal {
public:
virtual void speak() const = 0; // 抽象函数
};
// Dog 类继承自 Animal 并实现了 speak 方法
class Dog : public Animal {
public:
void speak() const override { cout << "Woof!" << endl; }
};
// Cat 类同样继承自 Animal 实现自己的 speak 行为
class Cat : public Animal {
public:
void speak() const override { cout << "Meow!" << endl; }
};
int main(){
Animal* animals[] = {new Dog(), new Cat()};
for (auto animal : animals){
animal->speak(); // 动态绑定调用相应子类的方法
delete animal;
}
return 0;
}
```
这段代码说明了通过定义虚函数`speak()`来支持运行时多态性的机制[^1]。当不同的动物发出声音时,实际执行的是各自重写的版本而不是基类中的声明形式。
此外,在上述例子中还体现了封装的概念——即把数据成员(如果有的话)以及成员函数组合在一起构成一个整体;同时也展现了继承关系:两个具体的宠物种类都从通用的`Animal`类别那里获得了某些共通的行为模式[^2]。
阅读全文