C++中使用静态成员变量达到全局变量的效果
程序员文章站
2024-02-20 23:25:34
...
用qt先新建个工程文件,继承对象可以随意是QWidget或者是QMainwindow,我这边继承的是QMainwindow类,然后再新建个类Test,
在mainwindow.h文件中如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include "test.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
在MainWindow.cpp文件中代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
//给静态成员变量来进行重新赋值
Test::_value = 20;
qDebug()<<"1111111"<<Test::_value;
}
在test.h文件中:
#ifndef TEST_H
#define TEST_H
class Test
{
public:
Test();
static int _value;
};
#endif // TEST_H
在test.cpp文件中:
#include "test.h"
Test::Test()
{
}
int Test::_value = 12;
在main.cpp文件中如下:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
最后是界面布局,我是放在一个QPushButton中来进行操作的,如下:
最后打印出来结果如下:
完成了!