假设我有一个类,如下面定义的Value
。一个接口可以只指定方法名称,但不能返回类型?
template <typename T>
class Value : public ValueInterface
{
public:
// ...
T getValue() const;
private:
T value_;
}
我可以在我的代码是指多个Value
期不同类型(即不同类型的T
)的一般(创建一个容器,例如)?我首先想到的是,如果有可能以某种方式声明一个纯抽象类从Value
可以继承:
class ValueInterface
{
public:
?? getValue() const = 0;
}
template <typename T>
class Value : public ValueInterface
{
// ...
}
std::list<ValueInterface> lst;
Value<int> i(...);
Value<char> c(...);
lst.push_back(i);
lst.push_back(c);
int vi = i.getValue();
char vc = c.getValue();
如果是不可能的,你能提供一个替代的解决方案?
你可以给一个伪代码如何使用这样的功能的例子吗? –
它就在那里,在第二个片段。我需要声明一个'std :: list'来存放不同的'Value'。 –
但是,这与你的'getValue'方法有什么关系? –