我有一个包含多个成员和方法的类。当我尝试添加新的member - 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;
};我试着用指针代替,但这不起作用。
发布于 2015-12-02 18:52:40
我没有在互联网上找到答案,我想分享我的解决方案,因为这是一个有点棘手的发现。在我的代码中,我的函数是这样的:
void bar(Foo a_foo)
{
// example use
a_foo.stream.setDevice(nullptr);
}函数尝试使用Foo类的副本,但不能这样做。为什么?因为QXmlStreamReader没有复制构造函数(与QXmlStreamWriter、QFile等相同)或重载的operator=。这个问题的解决方案是使用对对象的引用而不是复制。
void bar(Foo& a_foo) // add reference '&' here!
{
// example use
a_foo.stream.setDevice(nullptr);
}https://stackoverflow.com/questions/34040899
复制相似问题