【发布时间】:2020-09-05 22:20:20
【问题描述】:
虽然我看过一些关于将模板类作为参数引入模板类的帖子,但我似乎找不到适用于我的代码的东西,或者只是我不太理解解释。
最终,我正在寻找一个模板类,该模板类采用另一个模板类,该模板类采用标准类。
*注意:为简洁起见,我只包含了我认为足够的信息。
我已根据我能找到的信息进行了尝试,它显示在此处:
具体类
class ConcreteClass {
private:
std::string words;
public:
ConcreteClass(std::string newWords);
};
#endif
模板类模板
template <class ConcreteClass>
class TemplateClass{
private:
ConcreteClass stuff;
public:
TemplateClass(ConcreteClass fillStuff);
};
#endif
template <class ConcreteClass>
TemplateClass<ConcreteClass>::TemplateClass(ConcreteClass fillStuff) {
stuff = fillStuff;
}
基类模板
template<template<class> ConcreteClass, class TemplateClass>
class BaseClass {
private:
TemplateClass<ConcreteClass>* objPntr;
}
template<template<class> ConcreteClass, class TemplateClass>
BaseClass<TemplateClass<ConcreteClass>::BaseClass(TemplateClass<ConcreteClass>* newObj) {
objPntr = newObj;
}
template<template<class> ConcreteClass, class TemplateClass>
BaseClass<TemplateClass<ConcreteClass>::~BaseClass() {
if(objPntr) {
delete objPntr;
}
}
主要
int main() {
ConcreteClass cClass("some values");
TemplateClass tClass(cClass);
BaseClass(tClass);
return 0;
}
【问题讨论】:
-
请发送minimal reproducible example。你的问题不清楚。
-
我很抱歉。我意识到我没有提供足够的代码来代表我的问题或意图,我会尽快更新。
标签: c++ templates template-templates