0
該代碼給出了error C2504: 'IKeyEvent': base class undefined
在第3行無法修復的循環依賴
class IKeyEvent;
class EventDispatcher : private IKeyEvent {
public:
enum EEActions {
A_FEW_ACTIONS
};
private:
void OnKey(EventDispatcher::EEActions action, char multiplier);
}
class IKeyEvent {
public:
virtual void OnKey(EventDispatcher::EEActions action, char multiplier) = 0;
};
你不能從一個類繼承,直到它被定義,可以理解。但是我不能定義IKeyEvent
直到之後EventDispatcher
被定義。
我知道我可以將enum
移出Event Dispatcher
定義以使其成爲全局的,但這需要重構大部分程序。有沒有辦法讓EventDispatcher
繼承於依賴於EventDispatcher
的類?
'Unfixable'是正確的。 – SLaks 2009-10-25 21:02:07
需要在派生類中聲明的類型的基類?這個面向對象設計基本上出了什麼問題? – 2009-10-25 21:19:27
@Murali:顯然,這只是一個重構問題。現在正在添加IKeyEvent,而EventDispatcher已經出現了。我認爲在你添加接口時根本不會有錯誤。 – 2009-10-25 21:24:12