C++ 地图模板参数无效
C++ map template argument is invalid
我正在尝试创建一个地图,其值是我在另一个文件中定义的 class;即,FoodItemLookup
。但是,C++ 给我错误:
template argument 1 is invalid
我觉得这很奇怪,因为我没有使用任何模板。
如果有人能向我解释我做错了什么,我将不胜感激。我不认为我可以 post 所有代码,但这里是有问题的片段:
制作地图的尝试:
std::map<string, FoodItemLookup> foodCatalogue;
FoodItemLookup.h 文件的简要说明:
#ifndef FOODITEMLOOKUP
#define FOODITEMLOOKUP
#include <string>
class FoodItemLookup
{
private:
...
public:
//constructor
FoodItemLookup(std::string upc, int shelfLife, std::string name);
//copy constructor
FoodItemLookup(const FoodItemLookup &other);
//destructor
~FoodItemLookup();
...
);
#endif
您应该在第一个模板参数中的 string
中包含 std::
:
std::map<std::string, FoodItemLookup> foodCatalogue;
"I find this odd, because I'm not using any templates."
实际上 std::map
使用模板。这就是为什么在实例化 std::map
.
时需要在 <>
之间传递 2 种类型(这里是 std::string
和 FoodItemLookup
)
我正在尝试创建一个地图,其值是我在另一个文件中定义的 class;即,FoodItemLookup
。但是,C++ 给我错误:
template argument 1 is invalid
我觉得这很奇怪,因为我没有使用任何模板。
如果有人能向我解释我做错了什么,我将不胜感激。我不认为我可以 post 所有代码,但这里是有问题的片段:
制作地图的尝试:
std::map<string, FoodItemLookup> foodCatalogue;
FoodItemLookup.h 文件的简要说明:
#ifndef FOODITEMLOOKUP
#define FOODITEMLOOKUP
#include <string>
class FoodItemLookup
{
private:
...
public:
//constructor
FoodItemLookup(std::string upc, int shelfLife, std::string name);
//copy constructor
FoodItemLookup(const FoodItemLookup &other);
//destructor
~FoodItemLookup();
...
);
#endif
您应该在第一个模板参数中的 string
中包含 std::
:
std::map<std::string, FoodItemLookup> foodCatalogue;
"I find this odd, because I'm not using any templates."
实际上 std::map
使用模板。这就是为什么在实例化 std::map
.
<>
之间传递 2 种类型(这里是 std::string
和 FoodItemLookup
)