本文實例講述了C++中的聚合類。分享給大家供大家參考,具體如下:
聚合類是一種沒有用戶定義的構造函數,沒有私有(private)和保護(protected)非靜態數據成員,沒有基類,沒有虛函數。這樣的類可以由封閉的大括號用逗號分隔開初始化列表。下列的代碼在 C 和 C++ 具有相同的語法:
struct C { int a; double b;};struct D { int a; double b; C c;};// initialize an object of type C with an initializer-listC c = { 1, 2 };// D has a sub-aggregate of type C. In such cases initializer-clauses can be nestedD d = { 10, 20, { 1, 2 } };
如果一個類里面包含了用戶自定義的構造函數,而又用{ xx, xx, ...}來初始化它的對象,編譯器就會報錯
vc ―― error C2552: "xx" 不能用初始值設定項列表初始化非聚合
gcc―― error: xx must be initialized by constructor, not by '{...}'
聚合定義為:
數組
沒有以下內容的類、結構和聯合:
構造函數
私有或受保護的成員
基類
虛函數
編譯器不允許在包含構造函數的聚合中使用數據類型。
希望本文所述對大家C++程序設計有所幫助。
新聞熱點
疑難解答
圖片精選