【发布时间】:2013-03-25 12:58:06
【问题描述】:
我有一个抽象类应该是一个接口,像这样:
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)
唯一的选择?有点丑。
【问题讨论】:
标签: c++ interface abstract-class