信号处理程序与虚拟函数和继承(事件处理)
Signal Handlers vs Virtual Functions & Inheritance (Event Handling)
我有一个基本的 Window 类,我需要有诸如 MouseDown、MouseUp、WindowResize 等事件。我有两种可能的路由:信号处理程序(例如 Boost.Signal)或虚拟函数,其中类的用户创建一个派生自 Window 的类并覆盖 OnMouseUp、OnMouseDown 和 OnWindowResize 函数。每种方法的优点和缺点是什么,还是风格问题?
我写这篇文章是C++但我想这个概念更重要。
提前谢谢,嗯。
这是一项与各种方法(普通c,虚拟,boost::signal等)的性能相关的研究。研究
据此,boost.signal存在一些严重的问题。坦率地说,我没有使用太多那个库,尽管我认为这是一个非常有趣的问题,因为我在玩弄同样的想法。就目前而言,我会选择虚拟实施。
问候。 :)
相关文章:
- 给定顺序中的事件处理
- C++事件系统 - 多态事件和事件处理程序
- wxWidgets 拖放文件事件处理程序初始化问题(无效static_cast)
- 更好的事件处理机制?
- 如何将IEnumerable与Process.Start的输出事件处理程序一起使用?
- "动态创建的事件处理程序"复选框
- Wxwidgets - 如何添加调整大小事件处理程序以使"X"绘图随窗口调整大小?
- Qt 键按事件处理程序仅在按下 ctrl、alt 或 shift 键时做出反应
- 类成员作为 C++ 中 C 样式事件的事件处理程序
- C 设计事件处理程序类
- 将托管事件处理程序传递给 Linux 中的非托管代码
- 如何在 c++ linux 中创建事件处理程序
- 解除 lambda 事件处理程序的绑定
- 这是MFC C 中单个选择的ComboBox的事件处理程序
- 审核的实时事件处理 C/C++
- 指纹读取器 - 从 C# 代码创建事件处理程序到C++的问题
- 为什么我的Windows控制台关闭事件处理程序超时
- 无法让 matplotlib 事件处理程序与 Boost.Python 一起工作
- 信号处理程序与虚拟函数和继承(事件处理)
- 事件处理继承(C++)