加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C和参考文献

发布时间:2020-12-16 10:28:29 所属栏目:百科 来源:网络整理
导读:我目前正在开发一个包含多个文件的项目,并且有点复杂(在保持继承权方面).我收到编译错误,我认为它与引用有关.这是我在编译时遇到的错误 videotodatastream.cpp: In member function ‘virtual void Wade::VideoToDataStream::getData(std::string)’: videot
我目前正在开发一个包含多个文件的项目,并且有点复杂(在保持继承权方面).我收到编译错误,我认为它与引用有关.这是我在编译时遇到的错误

videotodatastream.cpp: In member function ‘virtual void Wade::VideoToDataStream::getData(std::string&)’:
    videotodatastream.cpp:33: error: no matching function for call to ‘Wade::VideoWrapper::getVideo(Letscher::Video (&)())’
    videowrapper.h:10: note: candidates are: virtual void Wade::VideoWrapper::getVideo(Letscher::Video&)

这是它抱怨的路线

Letscher::Video vid();
_vid.getVideo(vid); //Problem line

_vid是VideoWrapper&类型的私人会员数据.

VideoWrapper& _vid;

VideoWrapper是一个纯虚拟基类,具有以下方法:

class VideoWrapper {
    public:
        virtual void setVideo(Letscher::Video& video) = 0;
        virtual void getVideo(Letscher::Video& video) = 0;    
};

我实际使用的VideoWrapper的子类是RawVideo,它看起来像这样

class RawVideo : public VideoWrapper {
    public:
        RawVideo(Letscher::Video& video);
        virtual void setVideo(Letscher::Video& video);
        virtual void getVideo(Letscher::Video& video);

    private:
        Letscher::Video* _vid;
};

Wade::RawVideo::RawVideo(Letscher::Video& video): _vid(&video) {
}

void Wade::RawVideo::setVideo(Letscher::Video& video) {
  *_vid = video;
}

void Wade::RawVideo::getVideo(Letscher::Video& video) {
  video = *_vid;
}

因此,当我调用_vid.getVideo(vid)时,我希望它采用Video对象vid,并将其值设置为RawVideo中的私有数据.但由于某种原因,我调用此函数的方式与我的代码不匹配.

任何帮助都会很棒,谢谢.

解决方法

Letscher :: Video vid();不默认构造变量vid.它声明了一个函数vid,它不带任何参数,并返回一个Letscher :: Video.

你可能想要Letscher :: Video vid;代替.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读