试写出类 CTime 的类声明及其成员函数的实现。要求:在类 CTime 中包含 3 个数据分量,即时、分、秒。在类的成员函数中应包括存(以 set 开头)、取(以 get 开头)各个数据分量和完整时间的操作;按上下午各 12 小时或 24 小时打印时间的函数;有默认值的构造函数(默认值为 0 时 0 分 0 秒)。
时间: 2023-05-28 09:08:15 浏览: 110
类声明:
```c++
class CTime {
public:
CTime(int hour = 0, int minute = 0, int second = 0); // 默认值为 0 时 0 分 0 秒
void setHour(int hour);
void setMinute(int minute);
void setSecond(int second);
int getHour() const;
int getMinute() const;
int getSecond() const;
void print24() const;
void print12() const;
void print() const;
private:
int m_hour;
int m_minute;
int m_second;
};
```
成员函数实现:
```c++
// 构造函数
CTime::CTime(int hour, int minute, int second)
: m_hour(hour), m_minute(minute), m_second(second) {}
// 存取函数
void CTime::setHour(int hour) {
m_hour = hour;
}
void CTime::setMinute(int minute) {
m_minute = minute;
}
void CTime::setSecond(int second) {
m_second = second;
}
int CTime::getHour() const {
return m_hour;
}
int CTime::getMinute() const {
return m_minute;
}
int CTime::getSecond() const {
return m_second;
}
// 打印函数
void CTime::print24() const {
printf("%02d:%02d:%02d\n", m_hour, m_minute, m_second);
}
void CTime::print12() const {
int hour = m_hour;
const char* suffix = "AM";
if (hour > 12) {
hour -= 12;
suffix = "PM";
}
printf("%02d:%02d:%02d %s\n", hour, m_minute, m_second, suffix);
}
void CTime::print() const {
print24(); // 默认按 24 小时制打印
}
```