日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ 11 移动语义

發布時間:2025/3/21 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 11 移动语义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++?已經擁有了拷貝構造函數,?和賦值函數,它們主要定位為淺和深度拷貝,?新增加一個移動構造函數,主要避免拷貝構造。

在定義了移動構造函數的情況下,在實參(argument)是一個右值(rvalue,包括xvalue和prvalue)的情況下會調用移動構造函數,而不是調用復制構造函數?

可以使用std::move語句可以將左值變為右值而避免拷貝構造,修改代碼如下:

編譯器會對返回值進行優化,簡稱RVO,是編譯器的一項優化技術,它涉及(功能是)消除為保存函數返回值而創建的臨時對象。

-fno-elide-constructors,此選項作用是,在 g++ 上編譯時關閉 RVO。

shell> g++ main.cpp -std=c++11?-fno-elide-constructors

#include <iostream> using namespace std;class Test { public:Test(int a = 0){d = new int(a);cout << "cs" << this <<endl;}Test(const Test & tmp){d = new int;*d = *(tmp.d);cout << "copy\n";}// Test(Test && tmp) // { // 移動構造函數 // d = tmp.d; // tmp.d = NULL; // 將臨時值的指針成員置空 // cout << "mv" << this << endl; // }~Test(){if(d != NULL){delete d;cout << "delete d\n";}cout << "ds: " << this << endl;}int * d; };Test GetTmp() {Test h;cout << "Resource from " << __func__ << ": " << (void *)h.d << endl;return h; }int main() {//Test&& obj = GetTmp();Test obj = GetTmp();cout << "Resource from " << __func__ << ": " << (void *)obj.d << endl;return 0; }

  

?

?

?

  使用移動語義后

#include <iostream> using namespace std;class Test { public:Test(int a = 0){d = new int(a);cout << "cs" << this <<endl;}Test(const Test & tmp){d = new int;*d = *(tmp.d);cout << "copy\n";}Test(Test && tmp){ // 移動構造函數d = tmp.d;tmp.d = NULL; // 將臨時值的指針成員置空cout << "mv" << this << endl;}~Test(){if(d != NULL){delete d;cout << "delete d\n";}cout << "ds: " << this << endl;}int * d; };Test GetTmp() {Test h;cout << "Resource from " << __func__ << ": " << (void *)h.d << endl;return h; }int main() {Test&& obj = GetTmp();cout << "Resource from " << __func__ << ": " << (void *)obj.d << endl;return 0; }

  

  

?

int main() {//Test&& obj = GetTmp();Test obj = GetTmp();cout << "Resource from " << __func__ << ": " << (void *)obj.d << endl;return 0; }

  

?

總結

以上是生活随笔為你收集整理的c++ 11 移动语义的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色污网站 | 337p粉嫩大胆噜噜噜亚瑟影院 | 狠狠干天天色 | 91婷婷 | 午夜精品久久久久久久久久 | 国产露脸91国语对白 | 法国空姐在线观看视频 | 日韩av高清在线播放 | 一区不卡av| 久久综合99 | av不卡在线 | 成长快手短视频在线观看 | 十大污网站 | 在线观看免费观看在线 | 精品久久久久久中文字幕 | 性高湖久久久久久久久免费 | 黄色网址在线播放 | 91在线公开视频 | 免费在线观看一区 | 淫久久 | 亚洲无码乱码精品国产 | 成人在线免费视频 | 亚洲一区二区三区91 | 色播五月激情五月 | 中文字幕精品一区二区三区精品 | 九九热最新视频 | 欧美狂猛xxxxx乱大交3 | 久久视频免费看 | 亚洲h网站| 奇米四色影视 | 色图综合| 欧洲毛片 | 美景之屋电影免费高清完整韩剧 | 农村老女人av| 亚洲黄色大片 | 爱久久| 午夜免费在线 | 国产二区视频 | 精品亚洲永久免费精品 | 第四色激情 | 麻豆视屏 | 国产在线一区二区 | 高跟鞋丝袜猛烈xxxx | 在线看www| 在线视频啪 | 全部毛片永久免费看 | 国产一区二区三区毛片 | 亚洲瑟瑟| 日韩成人看片 | 奇米精品一区二区三区四区 | 快播在线视频 | 国产精品系列在线 | 日本大尺度吃奶做爰久久久绯色 | 精品久久成人 | 中文字幕乱码中文字幕 | 2019年中文字幕 | 快播色图| 在线免费黄网 | 日韩中文字幕综合 | 一区二区三区麻豆 | 久久亚洲AV成人无码国产人妖 | 好吊色视频一区二区 | 中文字幕在线观看不卡 | 日日夜夜精 | 午夜羞羞影院 | 亚洲精品一二三四 | 天天综合色 | 黄色免费在线视频 | 高清无码视频直接看 | 欧美一区二区三区久久妖精 | 欧美性猛交99久久久久99按摩 | 国产视频在线免费观看 | 天堂网在线视频 | 人人爽爽爽 | 国产成人av网站 | 特级西西444www高清大胆 | 亚洲爽爽| 日韩不卡高清 | 50部乳奶水在线播放 | 亚洲三级国产 | 婷婷中文网 | 美女福利片 | 久久97精品 | 干b视频在线观看 | 免费污片在线观看 | 都市激情男人天堂 | 国产suv精品一区二区68 | 欧美性xxxx在线播放 | 亚洲青青草原 | 精品中文字幕视频 | 中文字幕一区二区三区乱码在线 | 高潮无码精品色欲av午夜福利 | 青青草原av| 国产精品第二十页 | 欧美操穴| 少妇 av| wwwww国产| 91成人破解版 | 欧美人妖老妇 |