我正在做学校作业。我有Wallet.h和Main.cpp
在Wallet.h中,我有一个公众:
static std::map<std::string, double> currencies;
和Wallet();
在Main.cpp中,我尝试使用以下货币映射:std::map<std::string, double> currencies = wallet.currencies;`
我在代码中没有收到任何警告,但是当我尝试编译时出现此错误:我不确定发生了什么问题,可能是我尝试使用货币的方式不正确。
有人可以帮忙吗?
最佳答案
如果没有适当的minimal reproducible example,很难说出任何具体的东西,但是似乎
std::map<std::string, double> currencies = wallet.currencies;
您定义一个全局非 -member变量,而不是Wallet
成员。您需要将其显式定义为
Wallet
类的成员:std::map<std::string, double> Wallet::currencies = wallet.currencies;
// ^^^^^^^^
// Note scope as Wallet member here
关于c++ - 如何修复 “Undefined symbols for architecture x86_64:” C++编译器错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/65479015/