首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

operator= 为什么要返回引用解决办法

2012-03-04 
operator 为什么要返回引用operator函数为什么要返回引用,是为了连续赋值么?分析起来就是返回对象也可以

operator= 为什么要返回引用
operator=
函数为什么要返回引用,是为了连续赋值么?
分析起来就是返回对象也可以完成呀!

[解决办法]
当返回值时,有两个缺点:

1。效率低下,因为返回值需要调用拷贝构造函数

2。在连续操作时,会出现问题

具体如下:


写个程序:

class A
{
public:
A(int xx=0):x(xx){}
A(const A&a)
{
x=a.x;
cout < < "copy " < <endl;
}
A operator=(const A&a)
{
x=a.x;
cout < < "= " < <endl;
return *this;
}
int x;
};

void main()
{
A a(5);
A b,c;
(b=a)=c; //这样做,b=a之后返回的是一份拷贝,再(b=a)=c的赋值作用不到b上
//b=c; //而若不用连续=号,先b=a再b=c那结果是正确的,虽然效率低了
cout < <b.x < <endl;
}

热点排行