这是来自有效 C++ 第 2 版 scott meyers 的第 16 项(第 70 页)
作者没有太多解释地写道,当基类运算符 = 以下列方式调用时
Base::operator=(rhs);
一些编译器(尽管错误地)拒绝这个,如果它operator =
是由编译器生成的(见第 45 条)所以更好地使用
static_cast<base&>(*this) = rhs;
在第 45 项中,他提到如果基类operator =
是私有的,则派生类=
无权调用它。
但在最初的问题中,编译器拒绝它,因为它是由编译器生成的(必须是公开的)
对此的任何帮助(链接)都会有所帮助。(谷歌这些类型的问题很难)