I have
class Rect{
// stuff
};
并且
class SpecialRect:public Rect{
private:
operator const Rect(){return *this;} // No implicits casts to Rect
public:
// stuff
};
SpecialRect继承自Rect的所有属性和方法,但我希望避免将SpecialRect隐式转换为基类Rect。
在代码中:
SpecialRect oneSpecial;
Rect aRect=oneSpecial; // I want this to not compile. (to remind-me to declare aRect as SpecialTect)
编译没有错误。(我知道将基类Rect声明为私有可以实现,但我不想重新实现它的所有方法。)
有什么方法可以实现这个效果吗?
=delete;
比没有实现的private
更好地禁止某些操作(即使您错误地提供了一个)。 - Jarod42