實施例:用純虛擬覆蓋虛擬..是否可以?
class IGui{
protected:
virtual bool OnClicked(){return false;}
virtual bool OnHover(){return false;}
virtual bool OnScrollBarChange(){return false;}
virtual bool OnTextChange(){return false;}
...
}
class IGuiButton: public IGui{
protected:
virtual bool OnClicked() = 0;
virtual bool OnHover(){
do stuff
return true;}
...
}
的要點是具有用於所有的GUI類型一個黎民接口,可以是(其中,不是所有的虛函數需要重寫),然後提供一個按鈕精簡版專業化,但爲按鈕,theres必須是OnClicked的替代..
此外,我認爲我應該讓一個按鈕不應該重寫私人(所以使用私有繼承,並使用該花哨的「使用Base :: Method;」爲使具體的保護?
你可以試試看,或者你問這是否是一個好設計? – John3136
@ John3136,是的,我在尋找建議,我有點習慣於搗毀我的實施選擇。 – Icebone1000
通用接口的用例是什麼? – razeh