防止后代重写方法

Preventing descendants from overriding method

在 C++ 中(11/14/17,我不在乎),我有一个基础 class B,它将方法 x 公开为 protected

在派生自 B 的 class D1 中,我想阻止(D1 的)更多后代调用 x()。现在,如果我在 D1 中重写 x,我会简单地将其标记为 final.

但是,如果 D1 没有覆盖 x(),但 D1 仍然想对后代隐藏它怎么办?我该怎么做?

How can I do that?

通过更改程序并覆盖 D1 中的 x。您可以通过调用它来委托给基础 class 版本。