当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 多继承与条件编译的冲突
帖子发表于 : 2010-09-20 18:32 

注册: 2008-07-12 17:18
帖子: 159
送出感谢: 0 次
接收感谢: 1
在编写兼容不同版本的qt程序碰到的问题。事情是这样的:
qt4中QThread是继承QObject的,qt3中没有,现在要写一个类MyThread,要求继承QThread,并且有QObject的性质,那么在
qt4中,代码为
代码:
class MyThread :public QThread {
  ... }


qt3中则是
代码:
class MyThread :public QObject ,public QThread {
   ...}


现在要写在一个文件里,编译时不该代码就能在qt3和qt4中通过,我试写了如下代码
代码:
class MyThread :
    #ifndef EZXT_QT4
     public QObject,
    #endif
     public QThread
     { ...}



代码:
#if (__GNUC__ < 4)
#   if QT_VERSION >= 0x040000
#   define EZXT_QT4
#   endif
#else
#   define EZXT_QT4 (QT_VERSION >= 0x040000)
#endif

编译时结果是不管怎么样,都有public QObject这句,求高手指点迷津。

另外一个问题,前面的如果没有#if (__GNUC__ < 4)的判断(自己猜的,竟然可行),直接写
# if QT_VERSION >= 0x040000
# define EZXT_QT4
# endif

#define EZXT_QT4 (QT_VERSION >= 0x040000)

在头文件中,其他文件包含该头文件,则在不同gcc下可能那些文件中宏定义无效,求解释。


最后由 novesky 编辑于 2010-09-20 21:10,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 多继承与条件编译的冲突
帖子发表于 : 2010-09-20 19:25 
头像

注册: 2008-04-07 17:36
帖子: 4010
地址: 泰安人在阜新
送出感谢: 0 次
接收感谢: 0 次
迷惑。。。。


_________________
宇宙数学物理 sssssssss Ubuntu 桌面培训 sssssssss 问打包的问题之前先看
和我一样的新手请看,我看过了,腰不酸了,腿不疼了,上楼也有劲了
想去IRC的点这里——一个比QQ群好N多的东西


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译