第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

什么是聚合和POD以及它們?nèi)绾?為何特殊?

什么是聚合和POD以及它們?nèi)绾?為何特殊?

C++ C
慕村225694 2019-05-27 12:56:44
什么是聚合和POD以及它們?nèi)绾?為何特殊?此常見(jiàn)問(wèn)題解答涉及聚合和POD,并涵蓋以下材料:什么是聚合?什么是POD(普通舊數(shù)據(jù))?它們有什么關(guān)系?它們?nèi)绾我约盀楹翁貏e?C ++ 11有什么變化?
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊

C ++ 14改變了什么

我們可以參考Draft C ++ 14標(biāo)準(zhǔn)以供參考。

骨料

8.5.1 聚合部分對(duì)此進(jìn)行了介紹,它給出了以下定義:

聚合是一個(gè)數(shù)組或類(第9條),沒(méi)有用戶提供的構(gòu)造函數(shù)(12.1),沒(méi)有私有或受保護(hù)的非靜態(tài)數(shù)據(jù)成員(第11條),沒(méi)有基類(第10條),沒(méi)有虛函數(shù)(10.3) )。

唯一的變化是現(xiàn)在添加類內(nèi)成員初始值設(shè)定項(xiàng)不會(huì)使類成為非聚合。因此,以下來(lái)自C ++ 11的示例聚合了具有成員in-pace initializers的類的初始化

struct A{
  int a = 3;
  int b = 3;};

它不是C ++ 11中的聚合,而是C ++ 14中的聚合。N3605中包含此更改:成員初始值設(shè)定項(xiàng)和聚合,具有以下摘要:

Bjarne Stroustrup和Richard Smith提出了一個(gè)關(guān)于聚合初始化和成員初始化器無(wú)法協(xié)同工作的問(wèn)題。本文提出通過(guò)采用史密斯提出的措辭來(lái)解決這個(gè)問(wèn)題,該措辭消除了聚合不能擁有成員初始化者的限制。

POD保持不變

POD(普通舊數(shù)據(jù))結(jié)構(gòu)的定義在9 類Classes中介紹,它們說(shuō):

POD結(jié)構(gòu)110是非聯(lián)合類,它既是普通類又是標(biāo)準(zhǔn)布局類,并且沒(méi)有非POD結(jié)構(gòu)類型的非靜態(tài)數(shù)據(jù)成員,非POD聯(lián)合(或這種類型的數(shù)組)。類似地,POD聯(lián)合是一個(gè)簡(jiǎn)單類和標(biāo)準(zhǔn)布局類的聯(lián)合,并且沒(méi)有非POD結(jié)構(gòu)類型的非靜態(tài)數(shù)據(jù)成員,非POD聯(lián)合(或這種類型的數(shù)組)。POD類是POD結(jié)構(gòu)或POD聯(lián)合的類。

這與C ++ 11的措辭相同。

C ++的標(biāo)準(zhǔn)布局更改14

正如評(píng)論中所指出的,pod依賴于標(biāo)準(zhǔn)布局的定義,并且對(duì)于C ++ 14確實(shí)有所改變,但這是通過(guò)在事實(shí)之后應(yīng)用于C ++ 14的缺陷報(bào)告實(shí)現(xiàn)的。

有三個(gè)DR:

所以標(biāo)準(zhǔn)布局來(lái)自這個(gè)Pre C ++ 14:

標(biāo)準(zhǔn)布局類是一個(gè)類:

  • (7.1)沒(méi)有非標(biāo)準(zhǔn)布局類(或這類類型的數(shù)組)或引用類型的非靜態(tài)數(shù)據(jù)成員,

  • (7.2)沒(méi)有虛函數(shù)([class.virtual]),沒(méi)有虛基類([class.mi]),

  • (7.3)對(duì)所有非靜態(tài)數(shù)據(jù)成員具有相同的訪問(wèn)控制(Clause [class.access]),

  • (7.4)沒(méi)有非標(biāo)準(zhǔn)布局基類,

  • (7.5)在大多數(shù)派生類中沒(méi)有非靜態(tài)數(shù)據(jù)成員,并且最多只有一個(gè)具有非靜態(tài)數(shù)據(jù)成員的基類,或者沒(méi)有具有非靜態(tài)數(shù)據(jù)成員的基類,并且

  • (7.6)沒(méi)有與第一個(gè)非靜態(tài)數(shù)據(jù)成員相同類型的基類

為了在C ++ 14

類S是標(biāo)準(zhǔn)布局類,如果它:

  • (3.1)沒(méi)有非標(biāo)準(zhǔn)布局類(或這類類型的數(shù)組)或引用的非靜態(tài)數(shù)據(jù)成員,

  • (3.2)沒(méi)有虛函數(shù),也沒(méi)有虛基類,

  • (3.3)對(duì)所有非靜態(tài)數(shù)據(jù)成員具有相同的訪問(wèn)控制,

  • (3.4)沒(méi)有非標(biāo)準(zhǔn)布局基類,

  • (3.5)最多有一個(gè)任何給定類型的基類子對(duì)象,

  • (3.6)該類中的所有非靜態(tài)數(shù)據(jù)成員和位字段及其基類首先在同一個(gè)類中聲明,并且

  • (3.7)沒(méi)有集合M(S)類型的元素作為基類,其中對(duì)于任何類型X,M(X)定義如下.104 [注意:M(X)是類型的集合在X中可能處于零偏移的所有非基類子對(duì)象。 - 結(jié)束注釋]

    • (3.7.1)如果X是非聯(lián)合類類型,沒(méi)有(可能是繼承的)非靜態(tài)數(shù)據(jù)成員,則集合M(X)為空。

    • (3.7.2)如果X是非聯(lián)合類類型,其類型為X0的非靜態(tài)數(shù)據(jù)成員,其大小為零或者是X的第一個(gè)非靜態(tài)數(shù)據(jù)成員(其中所述成員可能是匿名聯(lián)合),集合M(X)由X0和M(X0)的元素組成。

    • (3.7.3)如果X是聯(lián)合類型,則集合M(X)是所有M(Ui)和包含所有Ui的集合的并集,其中每個(gè)Ui是X的第i個(gè)非靜態(tài)數(shù)據(jù)成員的類型。 。

    • (3.7.4)如果X是元素類型為Xe的數(shù)組類型,則集合M(X)由Xe和M(Xe)的元素組成。

    • (3.7.5)如果X是非類非數(shù)組類型,則集合M(X)為空。


查看完整回答
反對(duì) 回復(fù) 2019-05-27
  • 3 回答
  • 0 關(guān)注
  • 600 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)