当前位置: 代码迷 >> QT开发 >> QT中运用全局变量的方法求解答!
  详细解决方案

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

热度:93   发布时间:2016-04-25 04:29:23.0
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
  相关解决方案