In the process of changing some code, I have spilt some functions into multiple files. I have the files controls.cpp
and display.cpp
and I would like to be able to have access to the same set of variables in both files. I don't mind where they are initialized or declared, as long as the functions in both files can use them.
This was not an issue when the functions were in the same file, but now it seems almost impossible after an hour of googling and trying various things.
Определите переменную в одном файле, например:
type var_name;
И объявите ее глобальной в другом файле, например:
extern type var_name;
Создайте два новых файла:
Globals.h
и объявите все переменные как: extern имя типа;
Globals.cpp
и объявить переменные типа: type name;
Затем добавьте #include "Globals.h"
в начало:
Globals.cpp
controls.cpp
display.cpp
Затем вам могут понадобиться функции для их инициализации.
используйте те переменные как extern
т.е.
extern int i;
в другом файле объявить то же самое, что и обычная глобальная переменная ...
int i;//global
Все объявления, которые вы хотите видеть в нескольких единицах компиляции (файлы .cpp), должны быть помещены в файл заголовка, который вы включаете во все места, где необходимо используйте переменную, тип, класс и т. д.
Это намного лучше, чем extern, который, по сути, скрывает ваше намерение поделиться объявлением.