首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问QXmlStreamReader的私有成员(operator=)

无法访问QXmlStreamReader的私有成员(operator=)
EN

Stack Overflow用户
提问于 2015-12-02 18:52:40
回答 1查看 316关注 0票数 0

我有一个包含多个成员和方法的类。当我尝试添加新的member - QXmlStreamReader时,我得到一个错误,指向我的类的末尾:

代码语言:javascript
复制
C2248: 'QXmlStreamReader::QXmlStreamReader' : cannot access private member declared in class 'QXmlStreamReader'

简化类:

代码语言:javascript
复制
class Foo
{
    // multiple methods and class members which until now has been working fine
    QXmlStreamReader stream;
};

我试着用指针代替,但这不起作用。

EN

回答 1

Stack Overflow用户

发布于 2015-12-02 18:52:40

我没有在互联网上找到答案,我想分享我的解决方案,因为这是一个有点棘手的发现。在我的代码中,我的函数是这样的:

代码语言:javascript
复制
void bar(Foo a_foo)
{   
    // example use
    a_foo.stream.setDevice(nullptr);
}

函数尝试使用Foo类的副本,但不能这样做。为什么?因为QXmlStreamReader没有复制构造函数(与QXmlStreamWriter、QFile等相同)或重载的operator=。这个问题的解决方案是使用对对象的引用而不是复制。

代码语言:javascript
复制
void bar(Foo& a_foo) // add reference '&' here!
{   
    // example use
    a_foo.stream.setDevice(nullptr);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34040899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档