У меня есть абстрактный класс должен быть интерфейс, как это:Абстрактный класс в качестве аргумента (интерфейс случае)
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)
a единственный вариант? Природный урод.
Это сработало просто отлично, спасибо. –