#include <iostream> using namespace std; class Time { public: //在Time类的构造函数中使用成员初始化列表初始化数据成员 Time(int h=0, int m=0, int s=0): hour(h),minute(m),sec(c){} Time operator++() { //前置++运算符重载函数 sec++; if(sec>=60 ) { sec=sec-60; minute++; if(minute>=60) { minute=minute-60; hour++; 【3】______ } } return *this; } Time operator++(int) { //后置++运算符重载函数 Time temp(*this); //保存修改前的对象做返回值 ++(*this); return temp; } void display() { cout<<hour<<":"<<minute<<":"<<sec<<endl; } private: int hour ; int minute; int sec; }; int main() { Time time1(21,34,59), time2; cout<<" time1 : "; time1.display(); ++time1; cout<<"++time1: "; time1.display(); time2 = time1++; cout<<"time1++: "; time1.display(); cout<<" time2 : "; time2.display(); return 0; }
时间: 2024-01-10 10:04:15 浏览: 59
使用include <iostream>时一定要加using namespace std
这是一个 C++ 的程序,实现了一个 Time 类,其中重载了前置和后置自增运算符。程序的执行结果如下:
```
time1 : 21:34:59
++time1: 21:35:00
time1++: 21:35:00
time2 : 21:34:59
```
程序的运行过程如下:
1. 创建了一个 Time 类型的对象 time1,并且将其初始化为 21:34:59。
2. 调用 ++time1 运算符,将 time1 的秒数加一。注意,这里使用的是前置自增运算符,所以先会执行运算符重载函数,再返回结果。
3. 在运算符重载函数中,如果秒数超过 60,会将秒数减 60,同时将分钟数加一。如果分钟数也超过了 60,会将分钟数减 60,同时将小时数加一。这里需要在代码空缺处填写将小时数减一的代码。
4. 调用 time1++ 运算符,将 time1 的值赋给 time2,并且将 time1 的秒数加一。注意,这里使用的是后置自增运算符,所以先将 time1 的值保存在一个临时变量中,再执行运算符重载函数,最后返回临时变量的值。
5. 输出 time1 和 time2 的值,分别为 21:35:00 和 21:34:59。
希望对你有所帮助!
阅读全文