【发布时间】:2011-03-31 06:26:51
【问题描述】:
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'”的错误?
【问题讨论】:
-
是什么导致了错误?哪条线路触发它?
-
为什么不使用初始化列表来初始化所有成员呢?
-
@Charles:错误指向CHIProjectData类声明的最后一行。
-
@Charles:添加 QObject 作为基类会触发错误。早些时候没有基类的程序运行良好
-
@Arun:这似乎不对。仅当某些原因导致使用默认构造函数时才应触发该错误。你的默认构造函数定义在哪里?
标签: c++ qt inheritance qt4