【发布时间】:2011-12-19 13:28:45
【问题描述】:
我有一个抽象类(我知道它不会这样编译,但它是为了理解我想做的事情):
class AbstractComputation {
public:
template <class T> virtual void setData(std::string id, T data);
template <class T> virtual T getData(std::string id);
};
class Computation : public AbstractComputation {
public:
template <class T> void setData(std::string id, T data);
template <class T> T getData(std::string id, T data);
};
所以当我调用setData<double>("foodouble", data) 时,我希望将foodouble 标识的双精度(这里不是主要关注的内部机制)设置为双精度数据。
那该怎么做呢?
我认为输入virtual void setData<double>(std::string id, double data) 之类的内容可能是一种意思,但我不知道该怎么做。
【问题讨论】:
-
这个问题是关于如何为双打创建特殊情况的。或者如何通过使用一个模板函数来通用地设置任何数据类型。
-
呃……如果一个类型有“set data”和“get data”两个方法,那么命名该类型时首先想到的是“抽象计算”吗?