gpt4 book ai didi

c++ - 抽象基类c++

转载 作者:太空狗 更新时间:2023-10-29 19:38:38 24 4
gpt4 key购买 nike

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”的不可访问基

我怎样才能实现我想要的行为?

提前致谢。

最佳答案

你需要公开继承:

//"public" keyword
class VideoInput : public AbstractInput

//"public" keyword
class ImageInput : public AbstractInput

关于c++ - 抽象基类c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18113008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com