次のように、インターフェイスであるはずの抽象クラスがあります。
class IDataSource
{
public:
virtual double getMeThatDouble() = 0;
}
そしていくつかの実装のような
class IDataSourceStreamer
{
public:
double getMeThatDouble()
{
//implementation
}
}
ポイントは、他のクラスのコンストラクターの初期パラメーターとして使用したいということです
class DataNeeder
{
public:
explicit DataNeeder(IDataSource);
}
そしてここで問題が発生します- "parameter of abstract class type is not allowed"
。
特定の理由で禁止されていることを理解しています-抽象クラスを単独で使用することは不可能です。それで、私は何をすべきですか?のような方法ですか
IDataSource.FeedThat(DataNeeder)
唯一のオプション?ちょっと醜い。