我正在尝试理解以下代码。(我正在学习C ++)
class DefaultDevice : public Device {
public:
DefaultDevice() :
ui(new DefaultUI) {
}
private:
RecoveryUI* ui;
};
class DefaultUI : public ScreenRecoveryUI {
...
}
我很难理解 ui(new DefaultUI)部分。 据我所知,它是执行DefaultDevice()构造函数之前初始化的一部分 然后,根据我的理解,它将使用 new DefaultUI 参数调用ReocoveryUI构造函数。但是,RecoveryUI类没有任何带有这种参数的构造函数。(抱歉没有构成RecoveryUI类。它太长了:(如果有人感兴趣,那就是Android开源代码)
那么这个'新的DefaultUI'做?
答案 0 :(得分:0)
如果这是一个有效且有效的代码,RecoveryUI
似乎是DefaultUI
的基类。
ui(new DefaultUI)
创建一个对象并将其分配给ui
。
因此,ui
指向其子对象。
答案 1 :(得分:0)
它不是在之前运行,它是ctor的一部分。它被称为初始化列表,它用于初始化类的(非静态)成员变量。