[問題] 子類別move assignment

看板C_and_CPP (C/C++)作者 (王大明)時間4年前 (2021/01/02 00:19), 編輯推噓0(006)
留言6則, 1人參與, 4年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Linux 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) GCC 問題(Question): 各位大大新年快樂 最近在看c++ move語意,看到子類別的move assignment需要呼叫父類別operator= 不懂為何需要這樣 來源是看了stackoverflow的問題 https://reurl.cc/ld38MA 答案是 Derived &operator=(Derived &&rhs) { Base::operator=(std::move(rhs));//*** // do the derived part return *this; } 想問***這行的用意是什麼??完全想不懂為何要呼叫那個operator= 感謝大大回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.81.39 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1609517961.A.9F4.html

01/02 00:38, 4年前 , 1F
base type 和 data member (資料成員) 一樣都是屬於
01/02 00:38, 1F

01/02 00:38, 4年前 , 2F
derived type 的 sub-object. 這就跟你得特別呼叫資
01/02 00:38, 2F

01/02 00:38, 4年前 , 3F
料成員的 move assignment 一樣, base type 也需要相
01/02 00:38, 3F

01/02 00:38, 4年前 , 4F
同的操作. 要觀察很簡單, 在 base type 裡新增資料成
01/02 00:38, 4F

01/02 00:38, 4年前 , 5F
員並且在該成員型別的 move assignment 裡印出訊息就
01/02 00:38, 5F

01/02 00:38, 4年前 , 6F
01/02 00:38, 6F
文章代碼(AID): #1Vxqk9dq (C_and_CPP)
文章代碼(AID): #1Vxqk9dq (C_and_CPP)