J'ai une classe abstraite censé être une interface, comme ceci:classe abstraite comme argument (cas d'interface)
class IDataSource
{
public:
virtual double getMeThatDouble() = 0;
}
et quelques implémentations comme
class IDataSourceStreamer
{
public:
double getMeThatDouble()
{
//implementation
}
}
Le point est que je veux l'utiliser comme paramètre initial dans le constructeur d'autres classes comme
class DataNeeder
{
public:
explicit DataNeeder(IDataSource);
}
et vient ici la peine - "parameter of abstract class type is not allowed"
. Je comprends que c'est interdit pour une raison particulière - l'utilisation d'une classe abstraite par elle-même est impossible. Donc qu'est ce que je devrais faire? Est-ce qu'une méthode comme
IDataSource.FeedThat(DataNeeder)
une seule option? Un peu moche.
Cela a très bien fonctionné, merci. –