高手进 c++问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 11:46:29
单目运算符重载如--;
若 重载在类中 比如
time operator--()
{hour--;
minute--;
second--;
return *this;}

time operator--(int)
{hour--;
minute--;
second--;
return *this;}
一个是前置,一个是后置

但是若作为友元重载

如下:time operator--(time ok)
{ok.hour--;
ok.minute--;
ok.second--;
return ok;}
那怎么区分前置和后置呢????
(int)放哪里呢???????

错误很多也。。。
虽然是单目操作符 你也得跟参数啊。。光有个time返回值有什么用?
参数应该是 time的引用 &

这样就没问题了

并且 设计的最好模式是只设计 前置++
后置的 从逻辑上 用一个temp储存,并把引用用前置的++,返回temp.

有什么不明白的可以问我 但请尽量把问题说清楚 你这个代码太难改了

既然是单目运算符,那自然执行这个运算的只能是this对象,不需要其他对象的参与。如果真的这么定义time operator--(time ok),就改变了--操作符原本的语义!~我觉得没有意义~~!

aa

友元的后置形式应该是time operator--(time &, int)