类内重载operator=,类名假定为CMyData,成员变量有x,y,z

来源:互联网  时间:2016/8/26 17:02:06

关于网友提出的“ 类内重载operator=,类名假定为CMyData,成员变量有x,y,z”问题疑问,本网通过在网上对“ 类内重载operator=,类名假定为CMyData,成员变量有x,y,z”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 类内重载operator=,类名假定为CMyData,成员变量有x,y,z
描述:

classx

一般格式是
CMyData& operator=(const CMydata& data)
{
this->x=data.GetX();
………
return *this;
}
我想问可以用void类型吗,最后不返回*this,因为值已经赋进去了啊
解决方案1:

是可以,不过有时会用到连等的情况,所以最好要有个返回值

解决方案2:

一改全改,这动静太大了,不是很好

解决方案3:

返回引用作用很多,除了a=b=c; 外,
用到表达式的地方很多,
这些地方,都可以放上 赋值表达式

解决方案4:

可以用void类型的
返回引用主要可以进行连续表达式的书写,比如a=b=c;
赋值运算符的本意为“返回左值的引用“
PS:返回该类型的引用,这只是个协议,适用于所有赋值相关运算符,所有内置类型和标准库类型都这样遵循

上一篇<数据结构>二叉树编写。
下一篇一个在std空间内特化的问题。
明星图片
相关文章
《 类内重载operator=,类名假定为CMyData,成员变量有x,y,z》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)