我正在尝试创建一个映射,其值是我在另一个文件中定义的类;即FoodItemLookup
。但是,C ++给了我错误:
模板参数1无效
我发现这很奇怪,因为我没有使用任何模板。
如果有人能向我解释我做错了什么,我将不胜感激。我不认为我可以发布所有代码,但这里有相关的片段:
尝试制作地图:
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
答案 0 :(得分:1)
您的第一个模板参数中的std::
应该有string
个:
std::map<std::string, FoodItemLookup> foodCatalogue;
&#34;我发现这很奇怪,因为我没有使用任何模板。&#34;
实际上std::map
使用模板。这就是为什么在实例化std::string
时需要在FoodItemLookup
之间传递两种类型(此处为<>
和std::map
)的原因。