• 8317阅读
  • 8回复

[提问]要在一个工程中所有的cpp中,使用一个全局变量。你们一般是怎么摆放这个全局变量的? [复制链接]

上一主题 下一主题
离线qdxianxing
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-03
如题。。
离线uidab

只看该作者 1楼 发表于: 2012-05-03
回 楼主(qdxianxing) 的帖子
能避免就避免
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线qdxianxing
只看该作者 2楼 发表于: 2012-05-03
Re:回 楼主(qdxianxing) 的帖子
引用第1楼uidab于2012-05-03 10:09发表的 回 楼主(qdxianxing) 的帖子 :
能避免就避免

有些实在是避免不了。

例如:我要用一个互斥锁QMutex,锁住几个不同的线程。你说能怎么办?

这些线程都是子类化QThread来实现的。例如,分别放在

thread1.h,thread1.cpp,thread2.h,thread2.cpp,thread3.h,thread3.cpp,thread4.h,thread4.cpp,thread5.h,thread5.cpp。

你说,这个QMutex,该怎么摆放?



离线uidab

只看该作者 3楼 发表于: 2012-05-03
回 2楼(qdxianxing) 的帖子
我没用过QMutex,既然是锁住thread1,thread2,thread3,thread4,thread5,   能不能再定义个类,把这些都变成类变量??
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线qdxianxing
只看该作者 4楼 发表于: 2012-05-03
Re:回 2楼(qdxianxing) 的帖子
引用第3楼uidab于2012-05-03 11:18发表的 回 2楼(qdxianxing) 的帖子 :
我没用过QMutex,既然是锁住thread1,thread2,thread3,thread4,thread5,   能不能再定义个类,把这些都变成类变量??

那你有用过QThread吗?

你必须清楚QMutex是需要放在哪里的。

thread1 thread2……当然可以变成类变量。但即使都变成了类变量,依然需要一个全局锁。



离线uidab

只看该作者 5楼 发表于: 2012-05-03
回 4楼(qdxianxing) 的帖子
那就按你说的去做吧。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线passion_wu
只看该作者 6楼 发表于: 2012-05-03
随便在一个cpp文件中这样定义 QMutex mutex;
然后在要使用的cpp文件中这样申明 extern QMutex mutex;
离线qdxianxing
只看该作者 7楼 发表于: 2012-05-03
引用第6楼passion_wu于2012-05-03 12:36发表的  :
随便在一个cpp文件中这样定义 QMutex mutex;
然后在要使用的cpp文件中这样申明 extern QMutex mutex;



我也是这样想的,就是不知道有没有比这个更好的方法。

我不知道为什么QT要把QThread做成需要子类化,这样,使得源代码分在太多文件里了,多了不少麻烦。

离线benbenmajia

只看该作者 8楼 发表于: 2012-05-04
最好适应extern
安然.....
快速回复
限100 字节
 
上一个 下一个