假設我有一個類,如下面定義的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'方法有什麼關係? –