淺談C++左值引用和右值引用
更新時間:2017年01月10日 09:41:21 投稿:jingxian
下面小編就為大家?guī)硪黄獪\談C++左值引用和右值引用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
實例如下:
#include<iostream> #include<utility> #include<vector> using namespace std; int f(); int main() { vector<int>vi(100); int i=42; int &&r1=i;//error不能把右值引用綁到左值上 int &&r2=10; int &r3=i; int &r4=10;//error非常量引用不能綁到右值上 const int &r5=10;//ok int &&r5=r2;//error,r2是左值 int &&r6=std::move(r2);//ok,c++11std::move把左值轉(zhuǎn)換為對應(yīng)的右值引用類型。 int &&r4=f();//這個函數(shù)返回右值 int &r5=vi[1];//下標(biāo)返回左值 int &r6=r4;//變量r4是左值 } //左值引用表示一個對象的身份,右值引用表示對象的值 //返回左值引用的函數(shù)、賦值、下標(biāo)、解引用和前置遞增遞減運算符都是返回左值。 //不能把右值引用綁定在它們上,但可以把左值引用綁在它們上 //返回非引用類型的函數(shù)、算術(shù)、關(guān)系、位以及后置遞增遞減運算符都是返回右值 //不能把左值引用綁定它們上,但可以把const左值引用和右值引用綁定在它們上。
以上這篇淺談C++左值引用和右值引用就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語言數(shù)據(jù)結(jié)構(gòu)實現(xiàn)銀行模擬
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)實現(xiàn)銀行模擬的相關(guān)資料,通過此文希望大家能理解離散化的方法,希望能幫助到大家,需要的朋友可以參考下2017-08-08C語言實現(xiàn)斐波那契數(shù)列(非遞歸)的實例講解
下面小編就為大家?guī)硪黄狢語言實現(xiàn)斐波那契數(shù)列(非遞歸)的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08c++11多種格式時間轉(zhuǎn)化為字符串的方法實現(xiàn)
本文主要介紹了c++11多種格式時間轉(zhuǎn)化為字符串的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11C++?MiniZip實現(xiàn)目錄壓縮與解壓的示例詳解
Zlib是一個開源的數(shù)據(jù)壓縮庫,提供了一種通用的數(shù)據(jù)壓縮和解壓縮算法,本文主要為大家詳細介紹了如何利用Zlib實現(xiàn)目錄壓縮與解壓,需要的小伙伴可以參考下2023-11-11C++超詳細分析講解內(nèi)聯(lián)函數(shù)
為了消除函數(shù)調(diào)用的時空開銷,C++ 提供一種提高效率的方法,即在編譯時將函數(shù)調(diào)用處用函數(shù)體替換,類似于C語言中的宏展開。這種在函數(shù)調(diào)用處直接嵌入函數(shù)體的函數(shù)稱為內(nèi)聯(lián)函數(shù)(Inline Function),又稱內(nèi)嵌函數(shù)或者內(nèi)置函數(shù)2022-06-06