我有一个基本的 Window 类,我需要有诸如 MouseDown、MouseUp、WindowResized 等事件。我有两种可能的路线:信号处理程序(例如 Boost.Signal)或虚拟函数,该类的用户创建从 Window 派生的类并覆盖 OnMouseUp、OnMouseDown 和 OnWindowResized 函数。每种的优点和缺点是什么,还是风格问题?
我正在用 C++ 编写这个,但我想这个概念更重要。
提前谢谢,嗯。
我有一个基本的 Window 类,我需要有诸如 MouseDown、MouseUp、WindowResized 等事件。我有两种可能的路线:信号处理程序(例如 Boost.Signal)或虚拟函数,该类的用户创建从 Window 派生的类并覆盖 OnMouseUp、OnMouseDown 和 OnWindowResized 函数。每种的优点和缺点是什么,还是风格问题?
我正在用 C++ 编写这个,但我想这个概念更重要。
提前谢谢,嗯。
这是一项与各种方法(plain c、virtual、boost::signal 等)的性能相关的研究。学习
据此, boost.signal 存在一些严重的问题。坦率地说,尽管我认为这是一个非常有趣的问题,因为我正在玩同样的想法,但我并没有使用太多该库。就目前而言,我会选择虚拟实现。
问候。:)