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 クラスには、そのような引数を持つコンストラクターがありません。

では、この「新しい DefaultUI」は何をするのでしょうか?

4

2 に答える 2

0

それが有効で機能するコードであればRecoveryUI、の基本クラスのようですDefaultUI

ui(new DefaultUI)オブジェクトを作成し、それを に割り当てますui

したがって、uiその子オブジェクトを指します。

于 2013-03-11T07:29:22.977 に答える
0

ctor の前に実行されるのではなく、ctor の一部です。これは初期化子リストと呼ばれ、クラスの (非静的) メンバー変数を初期化するために使用されます。

于 2013-03-11T07:36:54.200 に答える