亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++中左值和右值的區(qū)別詳解

 更新時間:2022年01月27日 08:55:28   作者:king9666  
大家好,本篇文章主要講的是C++中左值和右值的區(qū)別詳解,感興趣的同學(xué)趕緊來看一看吧,對你有幫助的話記得收藏一下

左值右值定義:

左值指的是既能夠出現(xiàn)在等號左邊也能出現(xiàn)在等號右邊的變量(或表達(dá)式),右值指的則是只能出現(xiàn)在等號右邊的變量(或表達(dá)式).

int a;
int b;
a = 1;
b = 2;

a = b;
b = a;

a + b =  3; // 非法表示

右值分為純右值和將亡值:

純右值:臨時變量和不跟對象關(guān)聯(lián)的字面量值

將亡值:在確保其他變量不再被使用或即將銷毀時,通過盜取的方式,可以避免內(nèi)存空間的釋放和分配,能夠延長變量值的生命期。右值通常不具有名字,也只能通過引用的方式找到它的存在。

特性

首先, 對于基礎(chǔ)類型,右值是不可被修改的(non-modifiable),也不可被 const, volatile 所修飾(cv-qualitification ignored)

其次,對于自定義的類型(user-defined types),右值卻允許通過它的成員函數(shù)進(jìn)行修改。

自定義類型應(yīng)該設(shè)計得和內(nèi)置類型盡量一樣(所謂 value type,value semantic),但允許成員函數(shù)改變右值這個特性卻有意無意使得自定義類型特殊化了。
對此,我們其實可以這樣想:自定義類型允許有成員函數(shù),而通過右值調(diào)用成員函數(shù)是被允許的,但成員函數(shù)有可能不是 const 類型,因此通過調(diào)用右值的成員函數(shù),也就可能會修改了該右值

左值引用, 右值引用

引用類型本身并不擁有所綁定對象的內(nèi)存,只是該對象的一個別名。

左值引用是具名變量值的別名,右值引用是不具名(匿名)變量的別名。

常量左值引用是個萬能引用類型,可接受常量左值(帶有const),非常量左值和右值對其初始化。常量左值引用的右值在其生命期內(nèi)只能是只讀的

請?zhí)砑訄D片描述

E.g.1

int &a = 2;       # 左值引用綁定到右值,編譯失敗

int b = 2;        # 非常量左值
const int &c = b; # 常量左值引用綁定到非常量左值,編譯通過
const int d = 2;  # 常量左值
const int &e = c; # 常量左值引用綁定到常量左值,編譯通過
const int &b =2;  # 常量左值引用綁定到右值,編程通過

E.g.2

int a;
int &&r1 = c;             # 編譯失敗
int &&r2 = std::move(a);  # 編譯通過

總結(jié)

到此這篇關(guān)于C++中左值和右值的區(qū)別詳解的文章就介紹到這了,更多相關(guān)C++左值和右值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++日歷拼圖的解法你了解嗎

    C++日歷拼圖的解法你了解嗎

    這篇文章主要為大家詳細(xì)介紹了日歷拼圖C++的解法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言設(shè)計前中后隊列實例代碼

    C語言設(shè)計前中后隊列實例代碼

    隊列最主要的作用就是用來管理數(shù)據(jù)流的,防止數(shù)據(jù)因為傳輸頻率過快得不到及時處理而丟失,下面這篇文章主要給大家介紹了關(guān)于C語言設(shè)計前中后隊列的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Qt常用容器類的使用

    Qt常用容器類的使用

    本文主要介紹了Qt常用容器類的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • VS2010 C++ 配置優(yōu)化方案

    VS2010 C++ 配置優(yōu)化方案

    使用VS2010的時候,發(fā)現(xiàn)了不少問題,而本文則是介紹使用中需要的問題,已經(jīng)解決方案。
    2014-10-10
  • C++讀取注冊表的實現(xiàn)方法

    C++讀取注冊表的實現(xiàn)方法

    這篇文章主要介紹了C++讀取注冊表的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C語言實現(xiàn)飛機(jī)游戲(2)

    C語言實現(xiàn)飛機(jī)游戲(2)

    這篇文章主要介紹了C語言實現(xiàn)飛機(jī)游戲的第二部分,進(jìn)行功能完善,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Qt+Quick實現(xiàn)圖片演示器的開發(fā)

    Qt+Quick實現(xiàn)圖片演示器的開發(fā)

    這篇文章主要為大家詳細(xì)介紹了Qt如何利用Quick實現(xiàn)圖片演示器的開發(fā),文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Qt有一定的幫助,需要的可以參考一下
    2023-01-01
  • C++詳解PIMPL指向?qū)崿F(xiàn)的指針

    C++詳解PIMPL指向?qū)崿F(xiàn)的指針

    PIMPL 是 C++ 中的一個編程技巧,意思為指向?qū)崿F(xiàn)的指針。具體操作是把類的實現(xiàn)細(xì)節(jié)放到一個單獨(dú)的類中,并用一個指針進(jìn)行訪問
    2022-07-07
  • C++實現(xiàn)strcpy函數(shù)實例

    C++實現(xiàn)strcpy函數(shù)實例

    這篇文章主要介紹了C++實現(xiàn)strcpy函數(shù)實例,步驟講解的很詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,感興趣的朋友跟隨小編一起來研究吧
    2020-12-12
  • C++實現(xiàn)俄羅斯方塊

    C++實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01

最新評論