enum InputType
{
VideoInputType,
ImageInputType,
VideoStreamInputType
};
class AbstractInput
{
public:
AbstractInput(std::string);
virtual InputType Type()=0;
std::string GetName();
virtual std::string GetFullName()=0;
std::string Name;
};
class VideoInput : AbstractInput
{
public:
VideoInput(std::string,std::string);
virtual InputType Type();
virtual std::string GetFullName();
std::vector<cv::Mat> Data;
};
class ImageInput : AbstractInput
{
public:
ImageInput(std::string,std::string);
virtual InputType Type();
virtual std::string GetFullName();
cv::Mat Data;
};
我的计划是将AbstractInput作为函数参数。由于AbstractInput是抽象类,因此不存在实例。但在我看来,可能存在一个引用VideoInput或ImageInput的AbstractInput&。
我的代码无法正常工作:
VideoInput vidInput(ui->nameLineEdit->text().toStdString(),path.toStdString());
AbstractInput &absInput=vidInput;
错误:
'AbstractInput'是'VideoInput'无法访问的基类。
我该如何实现我想要的行为?
提前致谢。