Приветствую всех.
Я, кажется, цепляюсь за фундамент, но я нигде не могу найти решение. В любом случае, пойдем дальше и объясним.
У меня есть программа, состоящая из трех файлов; main.ccp, add.h, add.cpp.
Я объявляю класс 'SA' в add.h и все мои функции определены в add.cpp
additional.h
class SA {
...
public
int x;
} Obj1, Obj2;
main.ccp
#include "additional.h"
int main() {
Obj1.x = 5;
...
}
Это дает мне ошибку ссылки при компиляции:
ошибка LNK2005: «класс SA Obj1» (? Obj1 @@ 3VSA @@ A) уже определен в main.obj
Единственное определение объекта происходит в add.h, и больше нигде. Программа компилируется просто отлично, если объявлять объекты в главном, а не в заголовке:
main.ccp
#include "additional.h"
int main() {
SA Obj1;
Obj1.x = 5;
...
}
Проблема в том, что я хочу использовать объекты в основном в add.cpp, но мне все равно нужно инициализировать несколько открытых значений через main.cpp. Любые слова мудрости?