C++ 类构造函数初始化?
我正在努力理解以下代码。(我正在学习C++) 我在理解ui(新的DefaultUI)部分方面有点困难。 据我所知,在执行DefaultDevice()构造函数之前,这是初始化的一部分。C++ 类构造函数初始化?,c++,constructor,C++,Constructor,我正在努力理解以下代码。(我正在学习C++) 我在理解ui(新的DefaultUI)部分方面有点困难。 据我所知,在执行DefaultDevice()构造函数之前,这是初始化的一部分。 然后,根据我的理解,它将使用新的DefaultUI参数调用ReocoveryUI构造函数。但是,RecoveryUI类没有任何具有此类参数的构造函数。(很抱歉没有提出RecoveryUI类。它太长了:(如果有人感兴趣,它是Android开源代码) 那么这个“新的DefaultUI”做什么呢?如果这是一个有效的工作
然后,根据我的理解,它将使用新的DefaultUI参数调用ReocoveryUI构造函数。但是,RecoveryUI类没有任何具有此类参数的构造函数。(很抱歉没有提出RecoveryUI类。它太长了:(如果有人感兴趣,它是Android开源代码)
那么这个“新的DefaultUI”做什么呢?如果这是一个有效的工作代码,那么
RecoveryUI
似乎是DefaultUI
的基类
ui(新的DefaultUI)
创建一个对象并将其分配给ui
因此,
ui
指向它的子对象。它不是在ctor之前运行的,它是ctor的一部分。它被称为初始值设定项列表,用于初始化(非静态)类的成员变量。尝试阅读一本好的C++编程书。它们将在几分钟内解释得更好。此外,用<代码> G++-WalthG/<代码>编译,并在代码中一步一步地使用调试器<代码> GDB < /C>。因此,UI(新Debug)创建了一个恢复符对象或Debug TUI对象?如果是UI(new Debug()),我可以看到它正在将DefaultUI对象传递给RecoveryUI构造函数…它创建DefaultUI
对象,但将其作为RecoveryUI
@Todd新建DefaultUI
创建一个DefaultUI
并返回一个指向DefaultUI
的指针,然后使用该地址初始化ui
,因此最终得到一个poin点击RecoveryUI
指向DefaultUI
对象..@juanchopanza好的,现在对我来说很有意义。非常感谢!
class DefaultDevice : public Device {
public:
DefaultDevice() :
ui(new DefaultUI) {
}
private:
RecoveryUI* ui;
};
class DefaultUI : public ScreenRecoveryUI {
...
}