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;代替. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |