c++ 如何重载操作符++?写一个简单例子。

2024-11-29 01:44:34
推荐回答(3个)
回答1:

#include
#include
using namespace std;
//----------------------------------
class Time{
int hour, minute, second;
public:
void set(int h, int m, int s){ hour=h, minute=m, second=s; }
friend Time& operator++(Time& a);
friend Time operator++(Time& a, int);
friend ostream& operator<<(ostream& o, const Time& t);
};//-------------------------------
Time& operator++(Time& a){
if(!(a.second=(a.second+1)%60)&&!(a.minute=(a.minute+1)%60))
a.hour=(a.hour+1)%24;
return a;
}//--------------------------------
Time operator++(Time& a, int){
Time t(a);
if(!(a.second=(a.second+1)%60)&&!(a.minute=(a.minute+1)%60))
a.hour=(a.hour+1)%24;
return t;
}//------------------------------------
ostream& operator<<(ostream& o, const Time& t){
o< return o<}//--------------------------------
int main(){
Time t;
t.set(11, 59, 58);
cout< cout<<++t;
}//===============================
这是以前编的一个小程序,老师主要要求是前增量++和后增量++运算符的重载。其实也没什么难的,就是一个返回引用,一个不返回引用。可以在程序中体现。C++被称为是高手的游戏,在很多地方都可以体现

回答2:

不错

回答3:

++x; //means x.operator++();
T & operator++() {
item++; /* do whatever ++ means for the class */
return *this;
}

x++; //means x.operator++(int);
T operator++(int) {
T temp = *this;
item++;
return temp;
}