我来自C#背景,仍然对c++和Qt智能指针有所了解。这应该是一个基本问题:

在myClass.h中

QSharedPointer<AccessFlags> m_flags;

在myClass.cpp中,我试图设置(设置正确的单词?)m_flags指针
if(m_flags.isNull())
    m_flags = new AccessFlags();


class AccessFlags{
public:
     QHash<QString,int> flags;
     AccessFlags();  //The dictionary is setup in the constructor
};

编译器抱怨“没有匹配'operator ='。
如何设置指针?

最佳答案

您正在尝试将原始指针分配给该行中的QSharedPointer

m_flags = new AccessFlags();

您可能想要类似
m_flags = QSharedPointer<AccessFlags>(new AccessFlags);

关于c++ - 设置QSharedPointer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13243356/

10-11 18:35