たとえば、Value
のようなクラスがあるとします。インタフェースはメソッド名のみを指定できますが、戻り値の型は指定できませんか?
template <typename T>
class Value : public ValueInterface
{
public:
// ...
T getValue() const;
private:
T value_;
}
は、私が(例えば、コンテナを作成するために)一般的に私のコードで(つまり、異なるT
タイプで、である)異なるタイプの複数Value
Sを参照してくださいことはできますか? 、あなたは別のソリューションを提供することができ
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();
を、それが不可能な場合:私の最初に考えたのは、それが何らかの形でValue
を継承することができ、そこから純粋な抽象クラスを宣言することは可能かどうでしたか?
あなたは、このような機能を使用したいのですがどのようにの擬似コードの例を与えることができますか? –
これは2番目のスニペットにあります。異なる 'Value'を保持する' std :: list'を宣言する必要があります。 –
しかし、それはあなたの 'getValue'メソッドと何が関係していますか? –