是否有任何理由對與基類不同的被重寫的C++虛函數授予權限?這樣做有沒有危險?使用C++中的私有函數覆蓋公共虛函數
例如:
class base {
public:
virtual int foo(double) = 0;
}
class child : public base {
private:
virtual int foo(double);
}
的C++ faq說,這是一個壞主意,但沒有說爲什麼。
我在一些代碼中看到了這個習慣用法,我相信作者試圖讓這個類成爲最終的,基於一個假設,即不可能重載一個私有成員函數。但是,This article顯示了重寫私有函數的示例。當然another part of the C++ faq建議不要這樣做。
我的具體問題:
是否有使用虛擬方法不同的權限在派生類VS基類的任何技術問題?
有沒有合理的理由這樣做?
重新發明「保護」是我們嗎? – 2009-01-27 18:27:20