• 11761阅读
  • 11回复

QT中可以写一个头文件存放所有全局变量、数组、结构不? [复制链接]

上一主题 下一主题
离线cdutherbert
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-30
— 本帖被 XChinux 执行加亮操作(2011-01-21) —
我开发软件需要定义一些全局变量、数组、结构,可以一加入程序编译就有问题。QT中可以这样用不?不行改如何定义?谢谢!
离线duduqq

只看该作者 1楼 发表于: 2009-03-30
就和其他的一样定义了,但要在其他文件中用时得用extern再定义这些变量。
离线cdutherbert
只看该作者 2楼 发表于: 2009-03-30
能把它放在一个头文件里么?如果能的话,能说具体点吗?谢谢。
离线sbtree
只看该作者 3楼 发表于: 2009-03-31
引用第2楼cdutherbert于2009-03-30 20:01发表的  :
能把它放在一个头文件里么?如果能的话,能说具体点吗?谢谢。

为什么不能?QT本身只是C++的库而已
在头文件中定义你需要的,并在最开始的地方用预定义命令防止重复编译,在所有需要这些全局变量或结构的地方include进来就可以了
个人觉得,使用extern有点烦,不过用它是个好的编程习惯
windows 7 + VC++2008 + Qt4.5.2
离线wd007

只看该作者 4楼 发表于: 2009-03-31
全局变量定义在实现文件中,很多时候比定义在头文件中要好。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线steinlee

只看该作者 5楼 发表于: 2009-04-01
Why do you need global variables? It is not a good design. You can put them into a class like

class Units
{
public:
     static double km;
};

Units::km = 1000.0;//meters.


Anywhere you need it, you can access it by
     double vari = a * Units::km;


Try to avoid global variables. Encapsulation is an advantage of OOD.  
Looking for remote C/C++ and Qt 兼职
离线cdutherbert
只看该作者 6楼 发表于: 2009-04-01
主要是涉及很多类之间共享数据问题,所以想到了用全局变量。谢谢各位的建议。
离线cdutherbert
只看该作者 7楼 发表于: 2009-04-01
好像还是不行,编译的时候都有错。能具一个编译成功的例子不呢?
离线cdutherbert
只看该作者 8楼 发表于: 2009-04-01
能给个简单的例子来说明吗?
比如定一个condef.h
#ifndef CONDEF_H
#define CONDEF_H
extern qint32 pickTime[500];
extern int test;
#endif // CONDEF_H
现在有量类AA 和BB两个类各自有自己的头文件aa.h和bb.h和aa.cpp、bb.cpp
在aa.h和bb.h里都用#include “condef.h”。然后要使用 pickTime[500];
test。两个变量。但是一编译就出错了。请问问题在那里呢。
但是,如果使用的是static而不是extern的话,在一个累里改变了。在另外一个类里却没有任何变化,请高手指点。谢谢
离线cdutherbert
只看该作者 9楼 发表于: 2009-04-01
谢谢各位了。现在问题解决了哈。。。。
离线wter27
只看该作者 10楼 发表于: 2011-01-20
回 9楼(cdutherbert) 的帖子
你的问题是怎么解决的啊?受教了!!!
离线cdutherbert
只看该作者 11楼 发表于: 2011-03-09
回 10楼(wter27) 的帖子
定义一个头文件,里面定义一个类,然后把共享变量用STATIC 来做。
快速回复
限100 字节
 
上一个 下一个