c++虚函数时钟类、闹钟类的程序编写,包括虚函数的定义与实现、多态的几种形
时间: 2024-11-22 09:34:24 浏览: 31
深入解析C++中的虚函数与多态
5星 · 资源好评率100%
在C++中,我们可以创建一个基础时钟类和一个闹钟类来展示虚函数的应用以及多态的概念。假设我们有两个类:
1. **基类 Clock**:
```cpp
class Clock {
public:
virtual void tick() { std::cout << "Clock is ticking.\n"; }
};
```
在这个类里,`tick()`是一个虚函数,它在派生类中会被重写。
2. **派生类 AlarmClock (闹钟类)**:
```cpp
class AlarmClock : public Clock {
public:
void tick() override {
std::cout << "AlarmClock is ringing.\n";
}
};
```
在AlarmClock类中,我们覆盖了基类的`tick()`方法,并实现了特定的行为。
接下来,你可以创建实例并演示多态:
```cpp
int main() {
// 创建一个基类指针,指向基类和派生类的对象
Clock* clock = new Clock();
AlarmClock* alarm = new AlarmClock();
// 虚函数调用,通过基类指针,显示的是派生类的行为
clock->tick(); // 输出: AlarmClock is ringing.
delete clock;
delete alarm;
return 0;
}
```
这里展示了两种多态形式:
- **静态多态(早绑定)**: 当程序编译时,函数的调用取决于变量声明时所指定的类型,如`clock->tick()`。
- **动态多态(晚绑定)**: 在运行时确定调用哪版函数,因为`tick()`是在基类指针上调用的,实际调用了派生类的方法。
阅读全文