我有一个包含多个成员和方法的类。当我尝试添加新成员 - QXmlStreamReader时,我收到了指向课程结尾的错误:
C2248: 'QXmlStreamReader::QXmlStreamReader' : cannot access private member declared in class 'QXmlStreamReader'
简化课程:
class Foo
{
// multiple methods and class members which until now has been working fine
QXmlStreamReader stream;
};
我试图使用指针,但这没有帮助。
答案 0 :(得分:0)
我没有在互联网上找到答案,我想分享我的解决方案因为找到这个有点棘手。在我的代码的某处,我的功能如下:
void bar(Foo a_foo)
{
// example use
a_foo.stream.setDevice(nullptr);
}
函数尝试使用Foo类的COPY,但这不能完成。为什么?因为QXmlStreamReader没有复制构造函数(与QXmlStreamWriter,QFile等相同)或重载的operator =。对此的解决方案是使用对象的引用而不是复制。
void bar(Foo& a_foo) // add reference '&' here!
{
// example use
a_foo.stream.setDevice(nullptr);
}