看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
loveme00835: base type 和 data member (資料成員) 一樣都是屬於 01/02 00:38
loveme00835: derived type 的 sub-object. 這就跟你得特別呼叫資 01/02 00:38
loveme00835: 料成員的 move assignment 一樣, base type 也需要相 01/02 00:38
loveme00835: 同的操作. 要觀察很簡單, 在 base type 裡新增資料成 01/02 00:38
loveme00835: 員並且在該成員型別的 move assignment 裡印出訊息就 01/02 00:38
loveme00835: 好 01/02 00:38