这是从有效C++第二版斯科特迈尔斯(第70页)呼叫操作员的衍生自
作者写道没有太多的解释是,当基类操作者=被称为以如下方式
的项目16内=Base::operator=(rhs);
一些编译器(尽管不正确地)拒绝此,如果是由编译器产生的operator =
(见项目45),以便更好地利用
static_cast<base&>(*this) = rhs;
在第45项他提到,如果基类operator =
是私有的,派生类=
无权调用它。
,但原来的问题编译器拒绝它,因为它是由编译器生成的(这必须是公共的)
任何帮助(链接)这将是有益的。 (其很难谷歌这些类型的问题)
帮助什么,到底是什么?这本书似乎非常明确和直接。你有什么问题? – abelenky 2011-04-24 18:13:55
如果您正在处理类层次结构,最好不要使用赋值。 – 2011-04-24 18:46:20
@chris感谢您的编辑。 – Amar 2011-04-26 06:16:51