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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

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

3 回答

?
拉莫斯之舞

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

C ++ 14改變了什么

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

骨料

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

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

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

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

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

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

POD保持不變

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

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

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

有三個DR:

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

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

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

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

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

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

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

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

為了在C ++ 14

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

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

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

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

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

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

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

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

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

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

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

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

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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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