雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C++中的聚合類定義與用法分析

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊:

本文實(shí)例講述了C++中的聚合類。分享給大家供大家參考,具體如下:

聚合類是一種沒有用戶定義的構(gòu)造函數(shù),沒有私有(private)和保護(hù)(protected)非靜態(tài)數(shù)據(jù)成員,沒有基類,沒有虛函數(shù)。這樣的類可以由封閉的大括號用逗號分隔開初始化列表。下列的代碼在 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-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è)類里面包含了用戶自定義的構(gòu)造函數(shù),而又用{ xx, xx, ...}來初始化它的對象,編譯器就會報(bào)錯(cuò)

vc —— error C2552: "xx" 不能用初始值設(shè)定項(xiàng)列表初始化非聚合
gcc—— error: xx must be initialized by constructor, not by '{...}'

聚合定義為:

數(shù)組

沒有以下內(nèi)容的類、結(jié)構(gòu)和聯(lián)合:

    構(gòu)造函數(shù)
    私有或受保護(hù)的成員
    基類
    虛函數(shù)

編譯器不允許在包含構(gòu)造函數(shù)的聚合中使用數(shù)據(jù)類型。

希望本文所述對大家C++程序設(shè)計(jì)有所幫助。

上一篇:C++面試題之結(jié)構(gòu)體內(nèi)存對齊計(jì)算問題總結(jié)大全

欄    目:C語言

下一篇:利用C++實(shí)現(xiàn)雙鏈表基本接口示例代碼

本文標(biāo)題:C++中的聚合類定義與用法分析

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/1284.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有