C++、回调、对象和最佳实践

标签 c++ c qt callback

我正在寻找解决我的问题的方法。我找到了一种解决方法,但我觉得应该有一种更漂亮的方法来做到这一点。这是我的问题: 我有一个用 C 编写的 IPC 库。当收到消息时,它会调用一个回调函数。我在这个库上做了一个包装类。当收到消息时,包装器类应该触发一个信号(我使用的是 Qt 是)。如您所知,成员函数不能是回调,所以在我的例子中,我在类之外编写了回调。现在我必须从回调函数发出信号,我知道的唯一方法是为包装类创建一个公共(public)方法,它将发出信号,但我不想公开该方法,我不能访问类外的 protected /私有(private)成员。 任何人有类似的问题?你是怎么解决的?

谢谢

最佳答案

您可以将您的外部函数声明为该类的友元,因此不需要公开该方法。

这里是link到教程。

按照评论中的要求发布答案。

关于C++、回调、对象和最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966248/

相关文章:

c++ - 在模板特化的情况下,是否允许编译器忽略内联?

c - 如何限制我的用户输入

c++ - OpenEXR 到 QImage 的转换

Qt :How to make hyperlink to exe file

c++ - "Concurrency in Action"中的线程池示例

map 上的 C++ 循环未检测到 map 末端的变化

进入共享库的条件应该在 gdb 中工作?

objective-c - 从基本 C、xcode 项目调用 Objective-C 类

cocoa - Qt5。 QMacNativeWidget。体系结构 x86_64 的 undefined symbol

c++ - 编译 private.hpp OpenCV 3.0.0-rc1 时出错