Я пытаюсь создать класс в C ++ и получить доступ к элементам этого класса в более чем одном файле C ++. Я попытался более 7 возможных senarios для устранения ошибки, но безуспешно. Я изучил декларацию форвард класса, которая, кажется, не является ответом (я могу ошибаться).
//resources.h
class Jam{
public:
int age;
}jam;
//functions.cpp
#include "resources.h"
void printme(){
std::cout << jam.age;
}
//main.cpp
#include "resources.h"
int main(){
printme();
std::cout << jam.age;
}
Error 1 error LNK2005: "class Jam jam" (?jam@@3VJam@@A) already defined in stdafx.obj
Error 2 error LNK1169: one or more multiply defined symbols found
Я понимаю, что ошибка является множественным определением, потому что я включаю resources.h
в оба файла CPP. Как я могу это исправить? Я попытался объявить class Jam
в файле CPP, а затем объявить extern class Jam jam;
для каждого файла CPP, необходимого для доступа к классу. Я также пытался объявить указатели на класс, но у меня не получилось. Спасибо!