C++中怎么定義聚合類(lèi),針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出天峨免費(fèi)做網(wǎng)站回饋大家。
聚合類(lèi)是一種沒(méi)有用戶(hù)定義的構(gòu)造函數(shù),沒(méi)有私有(private)和保護(hù)(protected)非靜態(tài)數(shù)據(jù)成員,沒(méi)有基類(lèi),沒(méi)有虛函數(shù)。這樣的類(lèi)可以由封閉的大括號(hào)用逗號(hào)分隔開(kāi)初始化列表。下列的代碼在 C 和 C++ 具有相同的語(yǔ)法:
struct C { int a; double b; }; struct D { int a; double b; C c; }; // initialize an object of type C with an initializer-list C c = { 1, 2 }; // D has a sub-aggregate of type C. In such cases initializer-clauses can be nested D d = { 10, 20, { 1, 2 } };
如果一個(gè)類(lèi)里面包含了用戶(hù)自定義的構(gòu)造函數(shù),而又用{ xx, xx, ...}來(lái)初始化它的對(duì)象,編譯器就會(huì)報(bào)錯(cuò)
vc —— error C2552: "xx" 不能用初始值設(shè)定項(xiàng)列表初始化非聚合
gcc—— error: xx must be initialized by constructor, not by '{...}'
聚合定義為:
數(shù)組
沒(méi)有以下內(nèi)容的類(lèi)、結(jié)構(gòu)和聯(lián)合:
構(gòu)造函數(shù)
私有或受保護(hù)的成員
基類(lèi)
虛函數(shù)
編譯器不允許在包含構(gòu)造函數(shù)的聚合中使用數(shù)據(jù)類(lèi)型。
關(guān)于C++中怎么定義聚合類(lèi)問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。