国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++ 11新特性之大括號初始化詳解

2020-01-26 13:57:38
字體:
來源:轉載
供稿:網友

本文主要給大家介紹了關于C++11新特性之大括號初始化的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

C++11之前,C++主要有以下幾種初始化方式:

//小括號初始化string str("hello");//等號初始化string str="hello";//大括號初始化struct Studnet{ char* name; int age;};Studnet s={"dablelv",18}; //純數據(Plain of Data,POD)類型對象Studnet sArr[]={{"dablelv",18},{"tommy",19}}; //POD數組

雖然c++03提供了多樣的對象初始化方式, 但不能提供自定義類型對象的大括號初始化方式,也不能在使用new[]的時候初始化POD 數組。

幸好,C++11擴充了大括號初始化功能,彌補了C++03的不足。

class Test{  int a;  int b; public:  C(int i, int j); }; Test t{0,0};     //C++11 only,相當于 Test t(0,0); Test* pT=new Test{1,2};   //C++11 only,相當于 Test* pT=new Test{1,2}; int* a = new int[3]{ 1, 2, 0 }; //C++11 only

此外,C++11大括號初始化還可以應用于容器,終于可以擺脫 push_back() 調用了,C++11中可以直觀地初始化容器了:

// C++11 container initializer vector<string> vs={ "first", "second", "third"}; map<string,string> singers ={ {"Lady Gaga", "+1 (212) 555-7890"},{"Beyonce Knowles", "+1 (212) 555-0987"}}; 

因此,可以將C++11提供的大括號初始化作為統一的初始化方式,既降低了記憶難度,也提高的代碼的統一度。

此外,C++11中,類的數據成員在申明時可以直接賦予一個默認值:

class C {private:  int a=7; //C++11 only}; 

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

參考文獻

[1]C++ 11 新特性

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 化隆| 荥经县| 香港 | 陕西省| 泰和县| 中宁县| 内江市| 伊通| 泸州市| 蒙城县| 铜梁县| 潞西市| 宁阳县| 满洲里市| 自贡市| 汉中市| 牙克石市| 积石山| 保山市| 行唐县| 隆尧县| 柏乡县| 崇阳县| 固安县| 正宁县| 北海市| 团风县| 门头沟区| 屏边| 高唐县| 静海县| 信阳市| 东乌珠穆沁旗| 安龙县| 长乐市| 瓮安县| 东台市| 郴州市| 绥中县| 松江区| 峨山|