全局变量:方式1.在头文件中只做声明,源文件中赋值
方式2.在源文件中声明和赋值
全局变量方式1:在头文件中只做声明,用extern修饰,
在头文件中初始化赋值,或者在多个.cpp文件中初始化赋值,都会报错multiple definition 多重定义
只能在随便一个用到的.cpp中进行赋值,哪个文件需要使用该变量,只需include头文件就可以直接使用
声明部分:
#ifndef GENERAL_H
#define GENERAL_H
#include <QMutex>
extern int a;
extern QMutex * m_mutex;
#endif // GENERAL_H
定义赋值部分:
mywidget.cpp
#include "mywidget.h"
#include "ui_mywidget.h"
#include "general.h"
int a=0;
QMutex * m_mutex=new QMutex;
使用时,只需要包含头文件就可直接使用
#include "mythread.h"
#include "general.h"
.
.
m_mutex->lock();
.
m_mutex->unlock();
方式2:在源文件中声明和赋值
mywidget.cpp
#include "mywidget.h"
#include <QMutex>
QMutex * m_mutex=new QMutex;
在其他文件使用时,要用extern,不需要包含头文件
mythread。cpp
#include "mythread.h"
extern QMutex * m_mutex;