Проблема с инициализацией

219
30 декабря 2021, 11:30

у меня проект состоит из 3-х файлов : Header - с прототипами ф-ций Source - с функциями Source1 - с выводом функций на экран Проблема в том, что я хочу написать глобальную переменную для всех файлов в Header, (int maxs = 0), а выдает такую ошибку

Answer 1

Напишите в заголовочном файле объявление

extern int maxs;

и в одном .cpp-файле определение

int maxs = 0;

Второй вариант - если компилятор понимает свежие стандарты - написать в заголовочном файле

inline int maxs = 0;

Вариант написать в заголовочном файле

static int maxs = 0;

приведет к тому, что все будет компилироваться, но в каждом .cpp-файле будет своя переменная maxs...

Answer 2

Определи её в хэдере и включи хэдер в основные файлы. Заключи код хэдера в такую конструкцию.

#ifndef MY_HEADER
#define MY_HEADER
/*your code*/
#endif // MY_HEADER
READ ALSO
Как начать перебор std::list с N-го элемента?

Как начать перебор std::list с N-го элемента?

Есть два алгоритма перебора листа:

197
Как используя QFileDialog загрузить в массивы численные данные в Qt Creator

Как используя QFileDialog загрузить в массивы численные данные в Qt Creator

Создал диалоговое окно для выбора файлаtxt

158
Поиск в бинарном дереве

Поиск в бинарном дереве

Нужно проверить есть ли элемент Х в бинарном деревеМоя функция Find работает рандомно, то находит то не находит (хотя он есть)

110
Unreal Engine 4 не видит Visual Studio 2019

Unreal Engine 4 не видит Visual Studio 2019

Можно ли его как то указать в настройках движка (как в Unity)?

199