关于重载=这个运算符,发现书上好像写错了
假如Person是一个类,那么对=的重载的生命一般是这样的吧:
void operator =(const Person& rt_side);
但是我的书上一道作业题是这样写的:
Perons& operator =(const Person& rt_side);
难道这样也可以吗?如果可以,怎么用?带引用的函数值返回类型,我目前只见过返回类型为
istream&和ostream&这两种。
[解决办法]
返回指向自己的引用有什么不可以。
标准的operator=就是这样的
[解决办法]
重载操作符的返回值类型是根据语义来决定的, 你说的istream&和ostream&大概是对>>和<<的重载吧
[解决办法]
两个都可以,void返回值,则等式不可作为右值使用
比如 a=b
a=b=c :错误
fun(a=b):错误
传回引用,上述式子可以
[解决办法]
一般返回Perons& operator =(const Person& rt_side);
但返回void也可以
[解决办法]
内置类型的=也是返回的指向左操作数类型的引用
[解决办法]