課程
/后端開發
/C++
/趣味 C++ 進階
以及到實現哪里
為什么Buffer & Buffer :: operator = (const Buffer & buf)
第一個&是做什么用的?
2023-02-18
源自:趣味 C++ 進階 6-4
正在回答
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由上一行被賦值后,有地址是左值
可能理解不到位,請多指教
舉報
本課程是 C++ 的進階課程,繼續趣味學習之旅,帶你探索 C++ 的高級用法。
1 回答這個是什么意思
2 回答258拆成兩個字節變為0000 0010和0000 0001的過程是怎么來的
1 回答想問下怎么做
2 回答Add(const RMB & rmb)中的&是什么意思?是什么運算符嗎?
3 回答什么是小數
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2023-05-09
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由上一行被賦值后,有地址是左值
可能理解不到位,請多指教