请用C++编写:定义两个类 Time12 和 Time24,实现以下功能:(1)Time12 类表示 12 进制时 间,Time24 类表示 24 进制时间;(2)类中定义函数,完成两个类之间的转换。即:利 用基类与派生类的转换关系,实现将 24 进制时间转换为 12 进制时间。
时间: 2023-06-23 17:08:21 浏览: 125
以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
class Time12 { // 12进制时间类
private:
int hour; // 小时
int minute; // 分钟
char ampm; // 上午或下午
public:
Time12() { hour = minute = 0; ampm = 'a'; } // 默认构造函数
Time12(int h, int m, char ap) { hour = h; minute = m; ampm = ap; } // 有参构造函数
void display() { // 显示时间
cout << hour << ":" << minute << " ";
if (ampm == 'a') cout << "AM" << endl;
else cout << "PM" << endl;
}
};
class Time24 : public Time12 { // 24进制时间类
private:
int hour; // 小时
int minute; // 分钟
public:
Time24() { hour = minute = 0; } // 默认构造函数
Time24(int h, int m) { hour = h; minute = m; } // 有参构造函数
void display() { // 显示时间
cout << hour << ":" << minute << endl;
}
operator Time12() { // 类型转换函数
int h12;
char ap;
if (hour == 0) {
h12 = 12;
ap = 'a';
}
else if (hour < 12) {
h12 = hour;
ap = 'a';
}
else if (hour == 12) {
h12 = 12;
ap = 'p';
}
else {
h12 = hour - 12;
ap = 'p';
}
return Time12(h12, minute, ap);
}
};
int main() {
Time24 t24(18, 30); // 初始化24进制时间
t24.display(); // 显示24进制时间
Time12 t12 = t24; // 类型转换
t12.display(); // 显示12进制时间
return 0;
}
```
运行结果:
```
18:30
6:30 PM
```
阅读全文