我在类中有个函数
但现在存在一个问题,就很难解决,我查阅了很多资料都无法解决:
在下面这个类内函数中:
原因很简单,就是这个标出来的SPCM_WORK_DO指针的定义与我现在这个bWorkdo函数不符:
这个错误是自从我把bWorkdo函数,写到类内之后才出现的,也就是因为函数在类内,导致实参与形参不一致出错了。
但是我又必须得把bWorkdo函数写在类里面,因为我想用qt的信号与槽来传递这个函数类生成的数据。
如果你是告诉我加个 static 在 bWorkdo函数声明前这样的解决方案,那会导致信号与槽无法正常使用。
我就想着有没有typedef那行代码是上改一改,让形参SPCM_WORK_DO能变得跟实参结构一样呢?
有请各位能手解答下我的问题吧
问题的原因在于:
回调函数中使用的函数必须是能直接调用的,但是如果把这个Workdo函数放在类中,只能在类实例化后才能调用Workdo(排除加static的情况),这是导致报错的根本原因。
解决的思路:
如果这个Workdo函数处理的数据跟类没关系,那么就把它作为一个普通函数,如果需要用信号槽,就另外写一个槽函数,然后在槽函数中调用Workdo函数就可以了。
如果Workdo函数处理的数据,用到了类内的数据,那基本没办法了。(可以考虑把用到的类的数据声明成static的,然后Workdo也是普通函数,然后重写一个槽函数调用Workdo,只能试一下,不一定能成功)