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」のアクセスできないベースです
必要な動作を実装するにはどうすればよいですか?
前もって感謝します。