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

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

編譯器為類創(chuàng)建的所有成員函數(shù)是什么?這種事經(jīng)常發(fā)生嗎?

編譯器為類創(chuàng)建的所有成員函數(shù)是什么?這種事經(jīng)常發(fā)生嗎?

C++
有只小跳蛙 2019-10-12 11:07:27
編譯器為類創(chuàng)建的所有成員函數(shù)是什么?這種事經(jīng)常發(fā)生嗎?編譯器為類創(chuàng)建的所有成員函數(shù)是什么?這種事經(jīng)常發(fā)生嗎?就像破壞者一樣。我關(guān)心的是它是否是為所有類創(chuàng)建的,為什么需要默認(rèn)構(gòu)造函數(shù)?
查看完整描述

3 回答

?
交互式愛情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個贊

C+98/03

如果需要的話,

  1. 編譯器將生成一個

    默認(rèn)構(gòu)造函數(shù)

    除非您聲明了您自己的任何構(gòu)造函數(shù)。
  2. 編譯器將生成一個

    復(fù)制 構(gòu)造器

    除非你宣布屬于你自己。
  3. 編譯器將生成一個

    復(fù)制 賦值算子

    除非你宣布屬于你自己。
  4. 編譯器將生成一個

    破壞者

    除非你宣布屬于你自己。

正如Péter在一篇有幫助的評論中所說的,所有這些都是由編譯器生成的。當(dāng)他們需要的時候..(區(qū)別在于,當(dāng)編譯器無法創(chuàng)建它們時,只要不使用它們,就可以了。)


C+11

C+11添加以下規(guī)則,對于C+14也是如此(托利的信用額,見本評論):

  • 編譯器生成

    移動 構(gòu)造器

    如果
    • 沒有用戶聲明。

      復(fù)制 構(gòu)造器

      ,和
    • 沒有用戶聲明。

      復(fù)制 賦值算子

      ,和
    • 沒有用戶聲明。

      移動 賦值算子

    • 沒有用戶聲明。

      破壞者,

    • 它是

      標(biāo)記為

      刪除,

    • 所有的成員和基地

      可動.

  • 類似于

    移動 賦值算子

    如果沒有定義用戶,則生成
    • 沒有用戶聲明。

      復(fù)制 構(gòu)造器

      ,和
    • 沒有用戶聲明。

      復(fù)制 賦值算子

      ,和
    • 沒有用戶聲明。

      移動 構(gòu)造器

    • 沒有用戶聲明。

      破壞者,

    • 它是

      標(biāo)記為

      刪除,

    • 所有的成員和基地

      可動.

請注意,這些規(guī)則比C+03規(guī)則更詳細(xì),在實(shí)踐中更有意義。

為了更容易地理解上面提到的項(xiàng)目是什么Thing:

class Thing {public:
    Thing();                        // default constructor
    Thing(const Thing&);            // copy c'tor
    Thing& operator=(const Thing&); // copy-assign
    ~Thing();                       // d'tor
    // C++11:
    Thing(Thing&&);                 // move c'tor
    Thing& operator=(Thing&&);      // move-assign};

作為進(jìn)一步的閱讀,如果您是C+初學(xué)者,請考慮不需要您實(shí)現(xiàn)最后五個中的任何一個的設(shè)計(jì),即a。零規(guī)則 (由馬蒂尼奧·費(fèi)爾南德斯).



查看完整回答
反對 回復(fù) 2019-10-13
?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個贊

你是指“被創(chuàng)造”的“定義”嗎?

$12.1-“默認(rèn)構(gòu)造函數(shù)(12.1)、復(fù)制構(gòu)造函數(shù)和復(fù)制賦值操作符(12.8)和析構(gòu)函數(shù)(12.4)是特殊的成員函數(shù)。

如果“創(chuàng)建”意味著“定義”,那么下面是C+標(biāo)準(zhǔn)中的重要部分。

-當(dāng)類用于創(chuàng)建類型(1.8)的對象時,隱式地定義類的默認(rèn)構(gòu)造函數(shù)。

-如果類沒有用戶聲明的析構(gòu)函數(shù),則將隱式聲明析構(gòu)函數(shù)。隱式聲明的析構(gòu)函數(shù)在用于銷毀其類型的對象時被隱式定義。

-如果類定義沒有明確聲明副本構(gòu)造函數(shù),則將隱式聲明副本構(gòu)造函數(shù)。如果隱式聲明的副本構(gòu)造函數(shù)用于從類型的對象或從類型派生的類型的副本中初始化類型的對象,則隱式聲明的副本構(gòu)造函數(shù)是隱式定義的。

-如果類定義沒有明確聲明副本賦值操作符,則將隱式聲明一個副本賦值操作符。當(dāng)為類型的對象分配類型的值或從類型派生的類型的值時,隱式聲明的副本賦值運(yùn)算符將被隱式定義。



查看完整回答
反對 回復(fù) 2019-10-13
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個贊

默認(rèn)情況下,如果用戶不實(shí)現(xiàn),編譯器將向類添加一些成員函數(shù)。它們被稱為“四大”:

  • 默認(rèn)構(gòu)造函數(shù)
  • 復(fù)制構(gòu)造函數(shù)
  • 復(fù)印操作員(作業(yè))
  • 破壞者

根據(jù)成員的類型和列出的成員函數(shù)您自己提供的,這些將不會全部生成。



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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