C++ 抽象类接口可以模板化吗
抽象类接口可以模板化吗 我们可以在派生类中使用模板来填充参数吗? 如何为这些类型的需求定义接口参数C++ 抽象类接口可以模板化吗,c++,templates,c++14,C++,Templates,C++14,抽象类接口可以模板化吗 我们可以在派生类中使用模板来填充参数吗? 如何为这些类型的需求定义接口参数 class iconfigurator { public: iconfigurator(); virtual ~iconfigurator(); //EXpect the std::vector<class entry>& entries to be Template type.
class iconfigurator
{
public:
iconfigurator();
virtual ~iconfigurator();
//EXpect the std::vector<class entry>& entries to be Template type.
virtual bool config(const std::string& configName,std::vector<class entry>& entries) const = 0;
};
class derivedconfigurator : public iconfigurator
{
public:
derivedconfigurator();
virtual ~derivedconfigurator();
virtual bool config(const std::string& configName,std::vector<class another_entry_type>& entries) const = 0;
}
class derivedconfigurator2 : public iconfigurator
{
public:
derivedconfigurator2();
virtual ~derivedconfigurator2();
virtual bool config(const std::string& configName,std::maps<key, value>& entries) const = 0;
}
类iconfigurator
{
公众:
i配置器();
虚拟~iconfigurator();
//std::vector&条目应为模板类型。
虚拟布尔配置(const std::string和configName,std::vector和entries)const=0;
};
类derivedconfigurator:公共iconfigurator
{
公众:
derivedconfigurator();
virtual~derivedconfigulator();
虚拟布尔配置(const std::string和configName,std::vector和entries)const=0;
}
类derivedconfigurator2:公共iconfigurator
{
公众:
derivedconfigurator2();
虚拟~derivedconfigurator2();
虚拟布尔配置(const std::string和configName,std::maps和entries)const=0;
}
模板只是编写N个函数或类的快捷方式
template <typename T> class MyClass {}
MyClass<int> mc1 {};
MyClass<int> mc2 {};
模板只是编写N个函数或类的快捷方式
template <typename T> class MyClass {}
MyClass<int> mc1 {};
MyClass<int> mc2 {};
在您的示例中,
类型是什么?
在这个类中,您想在哪里使用模板参数?不清楚您试图实现什么。我已经编辑了代码。如果您询问是否可以执行模板类iconfigurator{…}
,那么您可以-但是请注意,iconfigurator
和iconfigurator
是不同的不相关类;比如说,你将无法拥有std::vector,并以统一和多态的方式对待它们。如果您询问是否可以执行模板虚拟bool配置(…)代码>则不可以。没有虚拟函数模板这种东西。@IgorTandetnik听起来像是一个答案!在您的示例中,类型是什么?
在这个类中,您想在哪里使用模板参数?不清楚您试图实现什么。我已经编辑了代码。如果您询问是否可以执行模板类iconfigurator{…}
,那么您可以-但是请注意,iconfigurator
和iconfigurator
是不同的不相关类;比如说,你将无法拥有std::vector,并以统一和多态的方式对待它们。如果您询问是否可以执行模板虚拟bool配置(…)代码>则不可以。没有虚拟函数模板这种东西。@IgorTandetnik听起来像是一个答案!