gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:35 25 4
gpt4 key购买 nike

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

我有一个基本案例,

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/

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