我的 A 类具有 A1、A2、A3 等方法,每个方法都接受相同的参数(一个 quint64 和一个 Qstring)。A 类实例化 B 类的一个对象,其中包含:
typedef void (*TCallBackFunction)(quint64, QString);
struct SCallBacks {
TCallBackFunction success;
TCallBackFunction failure;
};
QMap<int, SCallBacks> m_commandQueue;
void addToMap(int num, SCallBacks cb) {
m_commandQueue[num] = cb;
}
void doCallBack(int num) {
m_commandQueue[num].success(123,"TEST");
}
在课堂上 AI 会调用:
SCallBack t(1,A1);
b.AddToMap(1000,t);
b.doCallBack(1000);
我的问题是:
- A 可以将指针传递给 A 方法,并期望子 B 调用它们吗?
- 这是 B 调用 A 方法的正确方法吗?(每次我重用 B 类时,信号和插槽都需要我复制大量代码......所以希望这不是唯一的方法)
- 我不确定使用参数存储指向函数的指针的语法,以及如何调用它们 - 有人可以修复上述错误吗?