私は通常C#でプログラムを作成しますが、C++を少しやろうとしていますが、C++でインターフェイスを実装しようとすると多少苦労しています。C++でインターフェイスを実装する
は、C#では私はこのような何かしたい:Cで
class Base<T>
{
public void DoSomething(T value)
{
// Do something here
}
}
interface IDoubleDoSomething
{
void DoSomething(double value);
}
class Foo : Base<double>, IDoubleDoSomething
{
}
を++、私はこのようにそれを実装しました:
template <class T>
class Base
{
public:
virtual void DoSomething(T value)
{
// Do something here
}
};
class IDoubleDoSomething
{
public:
virtual void DoSomething(double value) = 0;
};
class Foo : public Base<double>, public IDoubleDoSomething
{
};
問題は、それがあるので、私ははFooのインスタンスを作成することができないということです抽象的(DoSomethingを実装していません)。私はDoSomethingを実装することができ、Baseのメソッドを呼び出すことができることを認識していますが、これを実行するより良い方法があることを期待していました。私は異なるデータ型の基底から継承する他のクラスを持っていて、Baseを使用しないIDoubleDoSomethingから継承する他のクラスを持っています。
助けてください。
これで悪く何が、どのような方法でそれは「より良い」だろうか? –
"Foo"がBaseからメソッドを継承し、実装が必要ないC#バージョンのように "より良い"ものが動作すると思います。 FooのBaseから各メソッドを実装するのは本当に悪いことではないと思います。 – Clueless
これは面倒ですが、より良い方法は見つけられませんでした。( –