亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

自動生成默認/復制/移動ctor和復制/移動賦值操作符的條件?

自動生成默認/復制/移動ctor和復制/移動賦值操作符的條件?

C++
白豬掌柜的 2019-06-23 16:43:27
自動生成默認/復制/移動ctor和復制/移動賦值操作符的條件?我希望在編譯器通常自動生成默認構造函數、復制構造函數和賦值操作符的條件下刷新內存。我記得有一些規則,但我不記得,也找不到有信譽的資源在網上。有人能幫忙嗎?
查看完整描述

3 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

在下面,“自動生成”意味著“隱式聲明為默認,但未定義為刪除”。在某些情況下,特殊成員函數被聲明,但定義為已刪除。

  • 如果沒有用戶聲明的構造函數,則自動生成默認構造函數(§12.1/5)。
  • 如果沒有用戶聲明的移動構造函數或移動賦值操作符,則自動生成復制構造函數(因為C+03中沒有移動構造函數或移動賦值運算符,這將簡化為C+03中的“始終”)(§12.8/8)。
  • 如果沒有用戶聲明的移動構造函數或移動賦值操作符,則自動生成復制賦值操作符(§12.8/19)。
  • 如果沒有用戶聲明的析構函數,則自動生成析構函數(§12.4/4)。

C+11及以后僅:

  • 如果沒有用戶聲明的復制構造函數、復制賦值操作符或析構函數,以及生成的移動構造函數有效,則自動生成移動構造函數(§12.8/10)。
  • 如果沒有用戶聲明的復制構造函數、復制賦值操作符或析構函數,并且生成的移動賦值運算符是有效的(例如,如果它不需要分配常量成員),則自動生成移動賦值操作符(§12.8/21)。


查看完整回答
反對 回復 2019-06-23
  • 3 回答
  • 0 關注
  • 701 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號