网上有两个方法,别人并不建议用extern因为会影响封装性。都建议用static关键字新建一个类然后放到public中去,然后我用了extern,因为简单方便,static
用了一下没用的上来。
1.首先也是要创建一个lei来存放全局变量,我创建了一个类share,在类中申明extern变量,注意不要定义,只要申明,因为只能定义一次的。
share.h
#ifndef SHARE_H
#define SHARE_H
/*在这里存放全局变量*/
#include "cilent.h"
extern QString username;//登录用户名共享
extern Cilent *MyClient; //客户端套接字共享
class Share
{
public:
Share();
};
#endif // SHARE_H
//然后share.cpp中我什么都没干,也可以在cpp中定义全局变量,但我要在login中定义,所以cpp无用武之地。
2.login.cpp中定义变量,现在前面定义变量,然后在后面函数中赋值。
#include "login.h"
#include "share.h"
#include "ui_login.h"
#include <QDebug>
#include <QString>
#include <QStringList>
#include <QCompleter>
#include <QMessageBox>
QString username;
Cilent *MyClient;
.....................................
MyClient = new Cilent(client);
.....................................
username = accountStr;
3.然后既可以在其他函数中使用了,在其他函数中使用只需申明
例如在balance.cpp中
#include "balance.h"
#include "ui_balance.h"
#include "share.h"
extern Cilent *MyClient;
extern QString username;
extern QString reciveData;