gpt4 book ai didi

c++ - error C3203 : 'OMSSPDisk' : unspecialized class template can't be used as a template argument for template parameter '_Kty' , 应为真实类型

转载 作者:行者123 更新时间:2023-11-30 04:28:52 36 4
gpt4 key购买 nike

我在 C++ 中使用带有模板的集合:

template<typename TKey,typename TValue>
class OMSSVDisk : public OMSSObjProperties<TKey,TValue>{
set<OMSSPDisk> memberPDs;
};

如上面代码中第三行 (set...) 的标题中所述,这是错误的。

OMSSObjProperties如下:

template<typename TKey,typename TValue>
class OMSSObjProperties{
string objTypeName;
string objTypeID;
string objID;
map<TKey,TValue> objProperties;
public:
string getObjTypeName();// returns objTypeName
string getObjTypeID();// returns objTypeID
string getObjID();// returns objID

void setObjTypeName(const char*);// sets objTypeName
void setObjTypeID(const char*);// sets objTypeID
void setObjID(const char*);// sets objID

map<TKey,TValue> getObjProperties();
TValue getObjPropertyValue(TKey Key);
void setObjProperty(TKey key,TValue Value);
string removeProperty(TKey Key);
};

而 OMSSPDisk 是一个类,如下所示:

template<typename TKey,typename TValue>
class OMSSPDisk : public OMSSObjProperties<TKey,TValue>{
};

所以这里的问题是,我们可以使用类名作为模板参数吗?请帮我解决错误。谢谢。

最佳答案

OMSSPDisk 是模板时,您必须在集合声明中包含实际的模板参数。

也许

set<OMSSPDisk<TKey, TValue>> memberPDs; 

您不能拥有一组模板,您必须指定一个特定类型。

关于c++ - error C3203 : 'OMSSPDisk' : unspecialized class template can't be used as a template argument for template parameter '_Kty' , 应为真实类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9768526/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com