引入const成員函式
class Person {
public:
Person(string s, string a);
string PerName;
string PerLive;
const string& GetName() const { return PerName; }//(1)
string GetLive() const { return PerLive; }//(2)僅舉例正常應該跟(1)一樣
};
上述例子:
(2)中在引數列表後的const是限制函式不能修改資料成員。但是因為返回是按值返回的,所以會產生拷貝。會產生拷貝開銷。
(1)中後面const與(2)作用相同,函式返回常量引用的好處有:
1、不產生拷貝開銷。因為返回引用的函式返回的是物件本身而非物件的副本。
2、增加程式設計靈活性,我們無法用一個普通引用去繫結一個常量。所以宣告時候可以宣告為常量引用,即使繫結了一個非常量,也可以對其進行修改。(一般不建議修改)
3、可以返回左值,我們能為返回型別是非常量引用的函式的結果賦值。
正在學習c++, 暫時瞭解的有這麼多,歡迎指正與補充!
相關文章
- c++ const 成員函式C++函式
- C++ 中的 const 物件與 const 成員函式C++物件函式
- 類中成員函式宣告後面的const的含義!函式
- C++中的static成員、static const成員和const成員的初始化C++
- 【轉】Const,Const函式,Const變數,函式後面的Const函式變數
- 靜態資料成員和靜態成員函式函式
- 函式指標使用c++類成員函式函式指標C++
- 第十三篇:成員函式與非成員函式的選擇函式
- 如何使用成員函式指標函式指標
- C++:類的成員函式C++函式
- 深入C++成員函式及虛擬函式表C++函式
- 膨脹的template class成員函式函式
- Laravel 字串輔助函式新成員Laravel字串函式
- 類內的靜態成員函式函式
- const放在函式前和放在函式後函式
- 成員變數/函式指標的用法 (轉)變數函式指標
- 成員函式的說明和使用(轉)函式
- bind( )介面卡(Adapter) -- 呼叫全域性函式及成員函式APT函式
- 成員方法與const之間的關係
- const修飾虛擬函式函式
- c++智慧指標中的reset成員函式C++指標函式
- C++特殊成員函式及其生成機制C++函式
- c++類别範本成員函式報錯C++函式
- 函式計算工具鏈新成員——FunLocal釋出啦函式
- 淺談C++指標直接呼叫類成員函式C++指標函式
- 【45】運用成員函式模版接受所有相容型別函式型別
- c++中string類成員函式的總結C++函式
- C++學習筆記(三):類與物件--靜態成員變數與常成員函式C++筆記物件變數函式
- 【c++】cout過載能不能寫成成員函式,若能,寫出函式原型,若不能,說明原因C++函式原型
- C++程式設計學習筆記:2 類和物件初探 內聯成員函式和過載成員函式C++程式設計筆記物件函式
- 繼承關係裡的六個預設成員函式繼承函式
- 函式計算工具鏈新成員 —— Fun Local 釋出啦函式
- 當心編譯器生成的隱含成員函式 (轉)編譯函式
- 結構體三種例項化方法(含成員函式)結構體函式
- 函式呼叫時用const保護指標函式指標
- STL區間成員函式及區間演算法總結函式演算法
- 在單獨執行緒中執行物件成員函式 (轉)執行緒物件函式
- var、let、const、解構、展開、new、this、class、函式函式