我想在C++中创建一个类,并且能够在多个C++文件中访问该类的元素。我尝试了超过7种可能的senarios来解决这个错误,但一直不成功。我已经看过类似的前瞻性声明,这似乎不是答案(我可能是错的)。在多个cpp文件中使用类/结构体/联合C++
//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" ([email protected]@[email protected]@A) already defined in stdafx.obj
Error 2 error LNK1169: one or more multiply defined symbols found
我理解的错误是一个多definiton因为我包括这两个cpp文件resources.h
。我怎样才能解决这个问题?我曾尝试在CPP文件中声明class Jam
,然后为每个需要访问该类的CPP文件声明extern class Jam jam;
。我也尝试过向班级宣布指示,但是我一直不成功。谢谢!