подскажите пожалуйста....
у меня есть data.h
и есть несколько cpp(например 1.cpp,2.cpp,3.cpp) файлов, в которых я хочу использовать переменные из data.h, так, чтобы они были общими для всех cpp...
но когда я в каждом из cpp пишу :: #include "data.h" у меня идет ругачка типа:
PCInfoSmall.obj : error LNK2005: "int pc_num" (?pc_num@@3HA) already defined in controlDlg.obj
Здравствуйте bazh, вы писали:
B>подскажите пожалуйста....
B>у меня есть data.h
B>и есть несколько cpp(например 1.cpp,2.cpp,3.cpp) файлов, в которых я хочу использовать переменные из data.h, так, чтобы они были общими для всех cpp...
B>но когда я в каждом из cpp пишу :: #include "data.h" у меня идет ругачка типа:
B>PCInfoSmall.obj : error LNK2005: "int pc_num" (?pc_num@@3HA) already defined in controlDlg.obj
Твоя ошибка состоит в том, что ты поместил _определения_ этих переменных в заголовочный файл. В 'data.h' ты должен поместить только _объявления_ этих переменных. Объявления переменных делаются с ключевым словом 'extern':
data.h
extern int a;
extern double b;
extern bool c;
В один (и только в один!) из .cpp файлов ты должен поместить _определения_ этих перемнных. Например, в 1.cpp.
1.cpp
int a = 0;
double b = 1.0;
bool c = false;
Все. Теперь ты можешь пользоваться этими переменными везде, предварительно включая 'data.h'.
Best regards,
Андрей Тарасевич,
Brainbench C and C++ Programming MVP