2

我需要在基类中编写一个成员函数,允许派生类访问。但不允许覆盖。

这可能吗?

4

3 回答 3

7

在 C++11 中,您可以使用说明final符来禁止覆盖。

维基百科中的显式覆盖和最终

于 2012-10-03T09:05:33.070 回答
1

如果你正在处理一个virtual方法,你可以使用finalC++11 中的特殊标识符。

class A
{
  virtual void foo() const final;
};

这将防止覆盖或隐藏名称,具体取决于上下文。

于 2012-10-03T09:06:49.707 回答
0

是的,如果您不声明它virtual,就不可能覆盖它。

在 C++11 之前,如果方法是virtual. 例如,MSVS 提供sealed关键字。

于 2012-10-03T09:05:22.137 回答