qt — глобальная переменная не обновляется сама

Это простой пример того, чего я пытаюсь достичь:
У меня есть заголовочный файл GlobalVar.h

#ifndef MY_GLOBALS_H
#define MY_GLOBALS_H

extern int flag;

#endif

MainWindow.cpp

#include "Globalvar.h"int flag;
void function() {
qDebug() <<"Flag is"<<flag;
}

Main.cpp

    #include "GlobalVar.h"int flag=0;
int main() {
if(true) {
flag=1;
qDebug() <<"Flag is"<<flag;
}
}

Теперь вывод консоли показывает значение флага в виде: «Флаг равен 1» (в строке №: 61) и «Флаг равен 0» (в строке №: 80).

Это означает, что флаг был установлен в 1 уже, когда он достигает MainWindow.cpp, тогда зачем показывать значение флага, равное 0?

1

Решение

Вы объявлять флаг глобальной переменной в MY_GLOBALS_H:

extern int flag;

Ты тогда определять это в MainWindow.cpp:

int flag; // this essentially means "int flag = 0;"

А затем вы снова определяете это в main.cpp:

int flag = 0;

Вы можете объявлять переменную много раз, но она должна быть определена ровно один раз.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]