还是前面运算符重载的有关问题~
还是前面运算符重载的问题~~~~~~
//-----------------------------
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 a;
}
//----------------------------------
ostream & operator < <(ostream & o,const Time & t){
o < <setfill( '0 ') < <setw(2) < <t.hour < < ": " < <setw(2) < <t.minute < < ": ";
return o < <setw(2) < <t.second < < "\n " < <setfill( ' ');
}
//----------------------------------
int main(){
Time t;
t.set(11,59,58);
cout < <t++;
cout < <++t;
}
///以上是代码////////////////////////////////////////////////
请问ostream & operator < <(ostream & o,const Time & t){
o < <setfill( '0 ') < <setw(2) < <t.hour < < ": " < <setw(2) < <t.minute < < ": ";
return o < <setw(2) < <t.second < < "\n " < <setfill( ' ');
}
中的o 是指什么,为什么o作为参数被传入而在代码中却只是在最开始的地方做o < <
------解决方案--------------------
< <是函数 返回的对象还是ostream 你可查看其详细定义 所以可以反复 < < understand?
//-----------------------------
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 a;
}
//----------------------------------
ostream & operator < <(ostream & o,const Time & t){
o < <setfill( '0 ') < <setw(2) < <t.hour < < ": " < <setw(2) < <t.minute < < ": ";
return o < <setw(2) < <t.second < < "\n " < <setfill( ' ');
}
//----------------------------------
int main(){
Time t;
t.set(11,59,58);
cout < <t++;
cout < <++t;
}
///以上是代码////////////////////////////////////////////////
请问ostream & operator < <(ostream & o,const Time & t){
o < <setfill( '0 ') < <setw(2) < <t.hour < < ": " < <setw(2) < <t.minute < < ": ";
return o < <setw(2) < <t.second < < "\n " < <setfill( ' ');
}
中的o 是指什么,为什么o作为参数被传入而在代码中却只是在最开始的地方做o < <
------解决方案--------------------
< <是函数 返回的对象还是ostream 你可查看其详细定义 所以可以反复 < < understand?