我有一个复杂的问题,我需要帮助。
我有一个基本案例,
class ParamBase
{
string paramValue;
//...
}
和一堆具有不同模板参数的类模板。
template <typename T>
class Param : public ParamBase
{
T value;
//...
}
现在,Param的每个实例都有不同的模板参数,double, int, string...等等。
为了方便起见,我有一个指向其基类指针的 vector ,其中包含已创建的所有实例:
vector<ParamBase*> allParamsObjects;
问题是:
我如何运行单个函数(全局函数或成员函数或任何函数,由您选择),它使用不同的模板参数转换所有这些不同实例的字符串 paramValue,并将转换结果保存为 Param::value 中的适当类型。这必须遍历保存在 vector allParamsObjects 中的所有对象。
所以如果第一个Param的模板实参是double,paramValue就得转成double保存在value中;如果第二个Param的参数是int,那么第二个的paramValue必须转换为int并保存在value中……等等。
任何帮助将不胜感激:-)
最佳答案
是这样的吗?
class ParamBase {
std::string paramValue;
public:
virtual void convert() = 0;
};
template <typename T>
class Param : public ParamBase
{
T value;
public:
virtual void convert() {
std::stringstream ss(paramValue);
ss >> value;
}
};
关于c++ - 执行一个函数来影响不同的模板类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046860/