考虑一个类,它应该为其所有子类提供一些(多态)方法,例如算术或按位运算符。这些操作不应被派生类修改以确保正确执行。但是,与此同时,我希望单独定义子类的评估(在我的示例中使用函数 isError() ):
class Mom
{
public:
virtual bool operator && (const Mom&) const final
{
return this->isError() && p_rOther.isError();
}
private:
virtual bool isError() = 0;
};
鉴于当前的标准,这似乎是不允许的,因为“纯虚拟性”意味着子类必须实现基类的所有虚拟功能,而“final”关键字与这种范式相矛盾。
任何建议或想法如何处理这种矛盾?