引用限定符(c++11)


1.概念

1)下面這種情況將對一個右值調用成員函數、對右值賦值

string s1 = "abc", s2 = "def";
auto n = (s1 + s2).find('a');    //對右值調用成員函數
s1 + s2 = "wc";        //對右值賦值

2)舊標准中,沒有辦法阻止這種使用方式,c++11下,為了維持向后的兼容性,仍然允許向右值調用成員函數、向右值賦值,但是提供了一種阻止的方法:使用引用限定符&和&&來指明成員函數的this指針指向的是左值還是右值

class A {
public:
    //和const成員函數中的const一樣,在成員函數的參數列表后加&或&&(必須同時出現在聲明和定義中)來限定this指針
    //成員函數參數列表后既有const又有引用限定符的話,引用限定符必須在const限定符后面
    A& operator=(const A&) &;
};

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM