很多小伙伴在Qt编程时,不会使用全局变量,其实基本有两种方式来定义使用全局变量,第一种是根据c/c++的extern来进行多文件的使用,第二种方法就是把全局变量放在类中,当做类静态变量来使用,一般来说,第一种方式严重破坏了类的封装,所以还是推荐第二种方式.下面给出简单的示例:
1.先在一个.h文件中声明一个类://c.h#ifndef C_H#define C_Hclass QPos{public:static int x; //注意关键字staticstatic int y; };#endif //C_H2.在.cpp文件里类中的成员进行定义://c.cpp#include "c.h"int QPos::x = 10; //必须要在对应的.cpp文件中进行初始化,否则会被报错!!int QPos::y = 20;3.然后就可以在其他文件中使用这些全局变量了.//m.cpp#include#include "c.h"m::m(QWidget *parent) : QWidget(parent) { ui.setupUi(this); c::x= 50; / c::y= 70; ... }1234567891011121314151617181920212223242526272829303132
–
切记对静态变量必须的初始化必须要在类外进行,同时不能在.h头文件中进行,应该在对应的.cpp中进行,否则会出现无法解析的错误.