C++,设计一个时间类,有3个私有成员变量Hour、Minute、Second,公有成员set()、update()、show()对应设定、改变和输出时间等功能。主函数中定义对象,完成对类中成员的访问。尝试修改数据成员的访问方式,观察编译结果。
时间: 2024-11-03 16:20:56 浏览: 25
在C++中,你可以创建一个名为`Time`的类,用于表示时间,并包含三个私有成员变量`hour`, `minute`, 和 `second`。以下是这个类的设计:
```cpp
#include <iostream>
class Time {
private:
int hour;
int minute;
int second;
public:
// 设置时间
void set(int h, int m, int s) {
if (h >= 0 && h <= 23 && m >= 0 && m <= 59 && s >= 0 && s <= 59) {
hour = h;
minute = m;
second = s;
} else {
std::cout << "Invalid time input!" << std::endl;
}
}
// 更新时间
void update(int delta_hour, int delta_minute, int delta_second) {
hour += delta_hour;
minute += delta_minute;
second += delta_second;
// 确保时间保持在合法范围内
if (hour > 23) {
hour -= 24;
}
if (minute > 59) {
minute -= 60;
if (hour == 23) {
hour = 0; // 如果超过一天,则回到第二天
}
}
if (second > 59) {
second -= 60;
}
}
// 显示时间
void show() const {
std::cout << "Current time: " << hour << ":" << minute << ":" << second << std::endl;
}
};
int main() {
Time currentTime;
// 访问并设置时间
currentTime.set(10, 30, 45);
currentTime.show(); // 输出当前时间
// 修改时间
currentTime.update(1, 0, 0); // 加1小时
currentTime.update(0, 15, 30); // 加15分钟和30秒
currentTime.show();
return 0;
}
```
在这个例子中,我们定义了一个`Time`类,它有三种访问方式:通过`set`设置时间,通过`update`更新时间,以及通过`show`显示时间。在`main`函数中,我们实例化了`Time`对象,并演示了如何使用这些方法。
至于尝试修改数据成员的访问方式,这通常涉及到将私有成员变量改为受保护(protected)或者公开(public)。如果将它们设为公开,那么从其他类可以直接访问和修改这些值,可能导致程序的不稳定性和安全性降低。然而,在C++里,由于封装原则,通常不建议直接修改私有成员变量,除非是为了继承或内部操作的需要。编译时会检查这样的访问是否违反封装,如果试图修改,可能会收到错误信息或警告。
阅读全文