首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT中运用全局变量的方法求解答!

2012-10-20 
QT中使用全局变量的方法求解答!!!急好几天了。我按照C++的标准,在头文件中加入了extern int var_name而且

QT中使用全局变量的方法求解答!!!急
好几天了。我按照C++的标准,在头文件中加入了
extern int var_name;
而且在CPP文件里面也引用了头文件。但是在类的槽函数定义中却不能使用全局变量。我已经在一个函数中对全局变量进行了初始化,但是依然报错。function_name_1()和function_name_1()都是声明的PUBLIC SLOTS。编译的时候说function_name_2()中的变量没有初始化。然后运行的时候就报RUN TIME的错,比较诡异,是VC++报的错。QT在DEBUG的时候提示的是
HEAP[maintest.exe]:
Invalid allocation size - A8444118 (exceeded 7ffdefff)
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc

QWaitCondition: Destroyed while threads are still waiting
源代码:
 

C/C++ code
extern int var_name ;      void MainWindow::function_name_1()      {      int var_name;      var_name=1;      };      void MainWindow::function_name_2()      {      // int var_name;不管是否定义这个都会出错!!!      //先调用函数function_name_1()后再调用function_name_2()      some_other_function(var_name);      };


[解决办法]
在一个头文件中声明int var_name全局变量,在另一个cpp文件中引用此变量: extern int var_name;指出var_name是在外部文件定时的变量,编译器会自动在所有文件中查找var_name的定义,如:
aaa.h:
C/C++ code
#ifndef AAA_H#define AAA_Hint var_name;#endif // AAA_H 

热点排行