作者WangDaMing (王大明)
看板C_and_CPP
标题[问题] 子类别move assignment
时间Sat Jan 2 00:19:14 2021
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1609517961.A.9F4.html
1F:→ loveme00835: base type 和 data member (资料成员) 一样都是属於 01/02 00:38
2F:→ loveme00835: derived type 的 sub-object. 这就跟你得特别呼叫资 01/02 00:38
3F:→ loveme00835: 料成员的 move assignment 一样, base type 也需要相 01/02 00:38
4F:→ loveme00835: 同的操作. 要观察很简单, 在 base type 里新增资料成 01/02 00:38
5F:→ loveme00835: 员并且在该成员型别的 move assignment 里印出讯息就 01/02 00:38
6F:→ loveme00835: 好 01/02 00:38