最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡述C++11就地初始化與列表初始化

 更新時(shí)間:2020年08月12日 10:31:27   作者:Dabelv  
這篇文章主要介紹了C++11就地初始化與列表初始化的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下

1.就地初始化

1.1簡介

在C++11之前,只能對結(jié)構(gòu)體或類的靜態(tài)常量成員進(jìn)行就地初始化,其他的不行。

class C
{
private:
	static const int a=10;	//yes
	int a=10;					//no
}

在C++11中,結(jié)構(gòu)體或類的數(shù)據(jù)成員在申明時(shí)可以直接賦予一個(gè)默認(rèn)值,初始化的方式有兩種,一是使用等號“=”,二是使用大括號列表初始化的方式。注意,使用參考如下代碼:

class C 
{
private: 
 int a=7; 	//C++11 only
 int b{7}; //或int b={7}; C++11 only
 int c(7);	//error
}; 

注意,小括號初始化方式不能應(yīng)用于就地初始化。

1.2就地初始化與初始化列表的先后順序

C++11標(biāo)準(zhǔn)支持了就地初始化非靜態(tài)數(shù)據(jù)成員的同時(shí),初始化列表的方式也被保留下來,也就是說既可以使用就地初始化,也可以使用初始化列表來完成數(shù)據(jù)成員的初始化工作。當(dāng)二者同時(shí)使用時(shí),并不沖突,初始化列表發(fā)生在就地初始化之后,即最終的初始化結(jié)果以初始化列表為準(zhǔn)。參考如下代碼:

#include <iostream>
using namespace std;

class Mem
{
public:
	Mem(int i,int j):m1(i),m2(j) {}

	int m1 = 1;
	int m2 = {2};
};

int main()
{
	Mem mem(11,22);
	cout<<"m1="<< mem.m1<<" m2="<<mem.m2<<endl;
}

程序輸出結(jié)果:

m1=11 m2=22

2.列表初始化

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

//小括號初始化
string str("hello");

//等號初始化
string str="hello";

//POD對象與POD數(shù)組列表初始化
struct Studnet
{
	char* name;
	int age;
};
Studnet s={"dablelv",18}; //純數(shù)據(jù)(Plain of Data,POD)類型對象
Studnet sArr[]={{"dablelv",18},{"tommy",19}}; //POD數(shù)組

//構(gòu)造函數(shù)的初始化列表
class Class
{
	int x;
public:
	Class():x(0){} 
};

這么多的對象初始化方式,不僅增加了學(xué)習(xí)成本,也使得代碼風(fēng)格有較大出入,影響了代碼的可讀性和統(tǒng)一性。從C++11開始,對列表初始化(List Initialization)的功能進(jìn)行了擴(kuò)充,可以作用于任何類型對象的初始化,至此,列表初始化方式完成了天下大一統(tǒng)。

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

此外,C++11列表初始化還可以應(yīng)用于容器,終于可以擺脫 push_back() 調(diào)用了,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提供的列表初始化作為統(tǒng)一的初始化方式,既降低了記憶難度,也提高的代碼的統(tǒng)一度。

以上就是簡述C++11就地初始化與列表初始化的詳細(xì)內(nèi)容,更多關(guān)于C++11就地初始化與列表初始化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++控制臺實(shí)現(xiàn)貪吃蛇游戲

    C++控制臺實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了C++控制臺實(shí)現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Qt 實(shí)現(xiàn)鋼筆畫線效果示例及詳細(xì)原理

    Qt 實(shí)現(xiàn)鋼筆畫線效果示例及詳細(xì)原理

    這篇文章主要介紹了Qt 實(shí)現(xiàn)鋼筆畫線效果示例及詳細(xì)原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • C++ 讀取文件內(nèi)容到指定類型的變量方法

    C++ 讀取文件內(nèi)容到指定類型的變量方法

    今天小編就為大家分享一篇C++ 讀取文件內(nèi)容到指定類型的變量方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解C++編程中對二進(jìn)制文件的讀寫操作

    詳解C++編程中對二進(jìn)制文件的讀寫操作

    這篇文章主要介紹了C++編程中對二進(jìn)制文件的讀寫操作,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • vs2019安裝及簡單處理技巧(超詳細(xì))

    vs2019安裝及簡單處理技巧(超詳細(xì))

    這篇文章主要介紹了vs2019安裝及簡單處理方法,本文是一篇非常詳細(xì)的教程,通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • C++自定義實(shí)現(xiàn)比較器

    C++自定義實(shí)現(xiàn)比較器

    這篇文章主要為大家詳細(xì)介紹了如何使用C++自定義實(shí)現(xiàn)比較器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C++編程模板匹配超詳細(xì)的識別手寫數(shù)字實(shí)現(xiàn)示例

    C++編程模板匹配超詳細(xì)的識別手寫數(shù)字實(shí)現(xiàn)示例

    大家好!本篇文章是關(guān)于手寫數(shù)字識別的,接下來我將在這里記錄我的手寫數(shù)字識別的從零到有,我在這里把我自己的寫代碼過程發(fā)出來,希望能幫到和我一樣努力求知的人
    2021-10-10
  • C++簡單又好用的基本運(yùn)算符重載

    C++簡單又好用的基本運(yùn)算符重載

    繼友元知識過后,就到了今天的C++運(yùn)算符重載的內(nèi)容了,運(yùn)算符重載是C++里比較重要的內(nèi)容。這篇博文不會一下子講完各種運(yùn)算符重載,因?yàn)樘嗔肆艘膊缓梦照莆眨赃\(yùn)算符重載我準(zhǔn)備分多次記錄和分享,那么接下來進(jìn)入正文
    2022-06-06
  • 關(guān)于C/C++中static關(guān)鍵字的作用總結(jié)

    關(guān)于C/C++中static關(guān)鍵字的作用總結(jié)

    以下是對C/C++中static關(guān)鍵字的作用進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++實(shí)現(xiàn)LeetCode(91.解碼方法)

    C++實(shí)現(xiàn)LeetCode(91.解碼方法)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(91.解碼方法),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論

隆昌县| 寿阳县| 团风县| 孟津县| 建昌县| 岚皋县| 左权县| 阆中市| 和龙市| 新巴尔虎右旗| 濮阳市| 周宁县| 开鲁县| 平和县| 新竹市| 鄂尔多斯市| 渭源县| 会昌县| 兴义市| 龙胜| 黔南| 都兰县| 修水县| 望江县| 闸北区| 称多县| 西畴县| 阿图什市| 互助| 新宁县| 海宁市| 龙海市| 贵德县| 那曲县| 临沭县| 嵊州市| 独山县| 金乡县| 深州市| 贡山| 延庆县|