c++ - 'QObject::QObject' 无法访问在类 'QObject' 中声明的私有(private)成员

标签 c++ qt inheritance qt4

class CHIProjectData : public QObject
{
public:
    CHIProjectData();
    CHIProjectData(QMap<QString,QString> aProjectData,
                   CHIAkmMetaData* apAkmMetaData = 0,
                   QObject* parent = 0);
private:
    QMap <QString,QString> m_strProjectData;
    CHIAkmMetaData* m_pAkmMetaData;
};

CHIProjectData::CHIProjectData(QMap<QString,QString> aProjectData,
                               CHIAkmMetaData* apAkmMetaData,
                               QObject* aParent)
    :
    QObject(aParent)
{
        m_strProjectData = aProjectData;
        m_pAkmMetaData = apAkmMetaData;
}

为什么会出现“'QObject::QObject' cannot access private member declaration in class 'QObject'”错误?

最佳答案

我猜你的 CHIProjectData 类正在被复制到某个地方(使用编译器生成的复制构造函数或赋值运算符)。 QObject 不能被复制或赋值给,这样会导致错误。但是,编译器没有指向错误的行,因此它选择文件中的某些行(最后一个大括号很常见,因为这是编译器在解析类声明后知道是否应该生成这些函数的时候看看它们是否已经存在)。

关于c++ - 'QObject::QObject' 无法访问在类 'QObject' 中声明的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3507530/

相关文章:

c++ - QT运行SAPI报错

c++ - QT C++ 如何正确创建以对象为参数的函数

mysql - Hibernate createSQLQuery 获取sql计数

grails - 按域类中父类(super class)声明的文件的子类过滤的条件

c++ - 在父类中访问子类的功能

c++ - 在 ShellExecute 函数中运行多个命令 (C++)

c++ - i2c smbus 过滤器函数破坏变量

c++ - 我的代码有什么问题?为什么错误信息

C++ Boost 等待无法识别

c++ - 扩展/收缩动态数组