Sul*_*lla 2 c++ oop inheritance qt
假设我创建了一个派生类,如下所示,
class CHIProjectData : public QObject
{
CHIProjectData(QMap<QString,QString> aProjectData,
CHIMetaData* apMetaData = 0,
QObject* parent = 0);
private:
QMap<QString,QString> m_strProjectData;
CHIAkmMetaData* m_pMetaData;
};
Run Code Online (Sandbox Code Playgroud)
我实施像,
CHIProjectData::CHIProjectData(QMap<QString,QString> aProjectData,
CHIMetaData* apMetaData,
QObject* aParent)
:m_strProjectData(aProjectData),
m_pMetaData(apMetaData),
QObject(aParent)
{
}
Run Code Online (Sandbox Code Playgroud)
我知道我在构造函数中启动成员变量m_strProjectData,m_pMetaData.但最后一部分"QObject(aParent)"做了什么?它是否创建了基类对象并将其视为成员变量?
QObject(aParent)
QObject
使用aParent
参数调用的构造函数. QObject
在这种情况下,它不是成员变量.它可能看起来像一个微妙的点,但它是一个重要的点,因为您访问子对象的属性和方法的方式需要不同于成员变量的语法.
这是一个类比,试图理解子对象和成员变量之间的区别.
在电影"蝙蝠侠:黑暗的夜晚"中,有一个场景,蝙蝠侠正在追逐他车里的坏人.但是汽车变得破损和无法使用,他必须逃脱.在这一点上,蝙蝠侠按下一个按钮,汽车的一部分从其他部分上卸下,成为一辆摩托车.这有点像子对象.这辆车是摩托车.
现在考虑一下RV牵引较小型车辆的情况,这种车辆经常出现在美国的高速公路上.在这种情况下,RV 具有车辆.车辆是RV的成员变量.