c++ - 执行一个函数来影响不同的模板类实例

标签 c++ class templates inheritance polymorphism

我有一个复杂的问题,我需要帮助。

我有一个基本案例,

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/

相关文章:

c++ - 二元运算符重载和多态性

c++ - 如何确定我的程序需要运行哪些 C++ 可再发行组件?

java - eclipse 可以将方法转换/重构为类吗?

c++ - 使用派生类自动转换

java - 识别 java 中 gerDeclaredMethod 所需参数的类类型

javascript - Handlebars.js 使用 ../引用父上下文

c++ - 基本类型的 std::vector 的部分类模板特化

c++ - 如何使用尽可能短的代码反向移植 if constexpr?

c++ - 无法使用 strptime() 获取秒数

c++ - 按索引 vector 对 Armadillo 矩阵的所有列进行排序的最佳方法