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