为了账号安全,请及时绑定邮箱和手机立即绑定

Buffer & operator = 这个&和=号是做什么用的

以及到实现哪里

为什么Buffer & Buffer :: operator = (const Buffer & buf)

第一个&是做什么用的?

正在回答

1 回答

Class &operator=(const Class& 别名); 

这是赋值运算符重载的标准格式,形参为本类对象的常引用,返回值是本类对象自己的引用可以做左值,只能用类的成员重载--回答源于:Class &operator=(const Class &); 操作符重载什么意思???_百度知道 (baidu.com)


我的理解就是:

Buffer & Buffer :: operator = (const Buffer & buf)

Buffer&表示左值,返回值是作Buffer类的左值

Buffer :: operator =表示Buffer类中的赋值运算符(=)进行重载

(const Buffer & buf)表示传入的值是Buffer类的常引用


左值和右值的关系

int a = 1;     // a 是左值

int b = 2;     // b 是左值

int c = a + b; // + 需要右值,所以 a 和 b 被转换成右值

               // + 返回右值


右值引用:数据类型&& 名称 = 右值;

左值引用:数据类型& 名称 = 左值;

常量的左值和右值引用:const 数据变量 &/&& 名称 = 左值/右值

区分左值和右值:左值可以取地址,可以进行运算,右值是临时变量,取不到地址

int&& a1 = sum(a,b);//sum(a,b)是右值,在函数结束后释放,不存在地址

int& b1 = a1;//a1由上一行被赋值后,有地址是左值


可能理解不到位,请多指教


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Buffer & operator = 这个&和=号是做什么用的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信