首页| 论坛| 消息

标题:如何同时继承两个QObject?
作者:water_wf
日期:2008-09-27 16:45
内容:

困扰好久,我发现如果自己的class同时继承QOjbect 和QWidget,编译是没有问题的,但是如果调用connect 函数就会报编译错误,如何避免这种情况,就是说我有一个自己写的公共的基类继承于QOjbect,里面有大量signal 和slot 同时子类还有继承各个widget,connect时出问题?有人直达怎么处理吗?


#1 [vlolv 09-27 22:21]
编译442中。。。。我没实践。。。。
QWidget不是已经继承QObject么,你为什么还要继承QObject?
用QObject::connect如何?
#2 [water_wf 09-28 00:06]
我主要想基类定义很多公共的signal和slot,QObject::connect也不行
#3 [wvins 09-28 08:07]
非要这么多继承的话,可以看看C++的虚继承。
class A: public A, public virtual B
具体细节不记得了,不过也很少有人会用这么晦涩的语法吧
不建议这么使用多继承,
多继承本来就是C++的一个不太好的特性。
非要使用的话,也是类似接口的方式,
即一个实体类和一个虚类(在C++中可以使用虚类来模拟接口)
--------
接口说白了就是调用约束。
按面向对象的思想来说,组合优于继承。
只是大部分人认为继承了,虚函数了,就是面向对象了。
--------
面向对象部分,可以看看 设计模式,相关书籍很多,不一定要四人帮的了
#4 [XChinux 09-28 08:54]
可以试一下将你的所谓加了许多signal/slot的QObject类改为写个模板类,在模板类中定义或连接这些signal/slot.
然后再从此模板类继承。
#5 [lazybone 09-28 09:01]
Jambi
------------
java 只能但继承,可以用接口代替实现

<< 1 2 3 >> (1/3)

回复 发表
主题 版块