Этот код дает 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
?