0

我正在尝试理解以下代码。(我正在学习 C++)

class DefaultDevice : public Device {
  public:
    DefaultDevice() :
      ui(new DefaultUI) {
    }
  private:
    RecoveryUI* ui;
};
class DefaultUI : public ScreenRecoveryUI {
 ...
}

我在理解ui(new DefaultUI)部分时遇到了一些麻烦。据我了解,这是执行 DefaultDevice() 构造函数之前初始化的一部分。
然后,据我了解,它将使用新的 DefaultUI参数调用 ReocoveryUI 构造函数。但是,RecoveryUI 类没有任何具有此类参数的构造函数。(抱歉没有提出 RecoveryUI 类。它太长了 :( 如果有人感兴趣,它是 Android 开源代码)

那么这个“新的 DefaultUI”有什么作用呢?

4

2 回答 2

0

如果那是有效且有效的代码,它似乎RecoveryUIDefaultUI.

ui(new DefaultUI)创建一个对象并将其分配给ui.

所以,ui指向它的子对象。

于 2013-03-11T07:29:22.977 回答
0

它不在ctor之前运行,它是 ctor 的一部分。它称为初始化列表,用于初始化类的(非静态)成员变量。

于 2013-03-11T07:36:54.200 回答