我正在研究如何在 C++ 中实现一个事件处理方案,这可能是最简单的,因为它可以在 java 中实现一个类的适配器。问题是,使用下面显示的方法,我需要已经实现了所有适配器,并在 devived 类中覆盖其功能(因为链接器需要它)。另一方面,考虑到它需要实现的方式,使用我可以在派生类中使用适配器的委托策略应该意味着较低的性能。
哪一个,或者其他什么应该是最好的方法?
class KeyboardAdapter
{
public:
virtual void onKeyDown(int key) = 0;
}
class Controller : public KeyApadter
{
private:
void onKeyDown(int key);
}
void Controller::onKeyDown(int key) {}
class UserController : public Controller {
private:
void onKeyDown(int key);
}
void UserController::onKeyDown(int key) {
// do stuff
}
int main() {
UserController * uc = new UserController();
Controller * c = uc;
c->_onKeyDown(27);
}