課程
/后端開(kāi)發(fā)
/C++
/趣味 C++ 進(jìn)階
以及到實(shí)現(xiàn)哪里
為什么Buffer & Buffer :: operator = (const Buffer & buf)
第一個(gè)&是做什么用的?
2023-02-18
源自:趣味 C++ 進(jìn)階 6-4
正在回答
Class &operator=(const Class& 別名);?
這是賦值運(yùn)算符重載的標(biāo)準(zhǔn)格式,形參為本類對(duì)象的常引用,返回值是本類對(duì)象自己的引用可以做左值,只能用類的成員重載--回答源于:Class &operator=(const Class &); 操作符重載什么意思???_百度知道 (baidu.com)
我的理解就是:
Buffer & Buffer :: operator = (const Buffer & buf)
Buffer&表示左值,返回值是作Buffer類的左值
Buffer :: operator =表示Buffer類中的賦值運(yùn)算符(=)進(jìn)行重載
(const Buffer & buf)表示傳入的值是Buffer類的常引用
左值和右值的關(guān)系
int a = 1;? ? ?// a 是左值
int b = 2;? ? ?// b 是左值
int c = a + b; // + 需要右值,所以 a 和 b 被轉(zhuǎn)換成右值
? ? ? ? ? ? ? ?// + 返回右值
右值引用:數(shù)據(jù)類型&& 名稱 = 右值;
左值引用:數(shù)據(jù)類型& 名稱 = 左值;
常量的左值和右值引用:const 數(shù)據(jù)變量 &/&& 名稱 = 左值/右值
區(qū)分左值和右值:左值可以取地址,可以進(jìn)行運(yùn)算,右值是臨時(shí)變量,取不到地址
int&& a1 = sum(a,b);//sum(a,b)是右值,在函數(shù)結(jié)束后釋放,不存在地址
int& b1 = a1;//a1由上一行被賦值后,有地址是左值
可能理解不到位,請(qǐng)多指教
舉報(bào)
本課程是 C++ 的進(jìn)階課程,繼續(xù)趣味學(xué)習(xí)之旅,帶你探索 C++ 的高級(jí)用法。
1 回答這個(gè)是什么意思
2 回答258拆成兩個(gè)字節(jié)變?yōu)?000 0010和0000 0001的過(guò)程是怎么來(lái)的
1 回答想問(wèn)下怎么做
2 回答Add(const RMB & rmb)中的&是什么意思?是什么運(yùn)算符嗎?
3 回答什么是小數(shù)
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2023-05-09
Class &operator=(const Class& 別名);?
這是賦值運(yùn)算符重載的標(biāo)準(zhǔn)格式,形參為本類對(duì)象的常引用,返回值是本類對(duì)象自己的引用可以做左值,只能用類的成員重載--回答源于:Class &operator=(const Class &); 操作符重載什么意思???_百度知道 (baidu.com)
我的理解就是:
Buffer & Buffer :: operator = (const Buffer & buf)
Buffer&表示左值,返回值是作Buffer類的左值
Buffer :: operator =表示Buffer類中的賦值運(yùn)算符(=)進(jìn)行重載
(const Buffer & buf)表示傳入的值是Buffer類的常引用
左值和右值的關(guān)系
int a = 1;? ? ?// a 是左值
int b = 2;? ? ?// b 是左值
int c = a + b; // + 需要右值,所以 a 和 b 被轉(zhuǎn)換成右值
? ? ? ? ? ? ? ?// + 返回右值
右值引用:數(shù)據(jù)類型&& 名稱 = 右值;
左值引用:數(shù)據(jù)類型& 名稱 = 左值;
常量的左值和右值引用:const 數(shù)據(jù)變量 &/&& 名稱 = 左值/右值
區(qū)分左值和右值:左值可以取地址,可以進(jìn)行運(yùn)算,右值是臨時(shí)變量,取不到地址
int&& a1 = sum(a,b);//sum(a,b)是右值,在函數(shù)結(jié)束后釋放,不存在地址
int& b1 = a1;//a1由上一行被賦值后,有地址是左值
可能理解不到位,請(qǐng)多指教