情況就是這樣。防止繼承者類重寫基類的虛函數
class Interface
{
public:
virtual void foo() = 0;
}
class MyClass : Interface
{
public:
virtual void bar() = 0;
private:
void foo()
{
//Some private work and checks.
bar();
};
}
我想,我的用戶將創建從MyClass的繼承一個類,他們將不得不實施有bar()
。
但我怎麼能enfoce他們不會覆蓋foo()
?因爲使用我的foo()
對我很重要。
這是否編譯?如果是這樣,你沒有問題,因爲你的foo是私人的。編輯:啊,不,它不編譯... – 2012-01-08 11:49:44
@MrLister:私有方法仍然可以被重寫。 – 2012-01-08 11:51:08
真的,對不起。沒關係。答案已經給出。 – 2012-01-08 12:00:52