信号处理程序与虚拟函数和继承(事件处理)

Signal Handlers vs Virtual Functions & Inheritance (Event Handling)

本文关键字:继承 事件处理 函数 程序 虚拟 信号处理      更新时间:2023-10-16

我有一个基本的 Window 类,我需要有诸如 MouseDown、MouseUp、WindowResize 等事件。我有两种可能的路由:信号处理程序(例如 Boost.Signal)或虚拟函数,其中类的用户创建一个派生自 Window 的类并覆盖 OnMouseUp、OnMouseDown 和 OnWindowResize 函数。每种方法的优点和缺点是什么,还是风格问题?

我写这篇文章是C++但我想这个概念更重要。

提前谢谢,嗯。

这是一项与各种方法(普通c,虚拟,boost::signal等)的性能相关的研究。研究

据此,boost.signal存在一些严重的问题。坦率地说,我没有使用太多那个库,尽管我认为这是一个非常有趣的问题,因为我在玩弄同样的想法。就目前而言,我会选择虚拟实施。

问候。 :)