C和参考文献

C和参考文献,第1张

概述我目前正在开发一个包含多个文件的项目,并且有点复杂(在保持继承权方面).我收到编译错误,我认为它与引用有关.这是我在编译时遇到的错误 videotodatastream.cpp: In member function ‘virtual void Wade::VideoToDataStream::getData(std::string&)’: videotodatastream.cpp:33 @H_419_4@ 我目前正在开发一个包含多个文件的项目,并且有点复杂(在保持继承权方面).我收到编译错误,我认为它与引用有关.这是我在编译时遇到的错误

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&)@H_404_12@  

这是它抱怨的路线

Letscher::VIDeo vID();_vID.getVIDeo(vID); //Problem line@H_404_12@  

_vID是VIDeoWrapper&类型的私人会员数据.

VIDeoWrapper& _vID;@H_404_12@  

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

class VIDeoWrapper {    public:        virtual voID setVIDeo(Letscher::VIDeo& vIDeo) = 0;        virtual voID getVIDeo(Letscher::VIDeo& vIDeo) = 0;    };@H_404_12@  

我实际使用的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;}@H_404_12@  

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

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

@H_419_4@解决方法 Letscher :: VIDeo vID();不默认构造变量vID.它声明了一个函数vID,它不带任何参数,并返回一个Letscher :: VIDeo.

你可能想要Letscher :: VIDeo vID;代替.

@H_419_4@ @H_419_4@ @H_419_4@ @H_419_4@ 总结

以上是内存溢出为你收集整理的C和参考文献全部内容,希望文章能够帮你解决C和参考文献所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1220444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存