0

次のシナリオの構文に関して、次の点で何か問題がありますか。

クラスFooとクラスFoo1があり、クラスFooにタイプFoo1のプライベートメンバーがある場合。

.hファイル:

class Foo{
  Foo1 *oFoo;
public:
  Foo(Foo1 &Fooy);
}

.ccファイル:

Foo::Foo(Foo1 &Fooy){
  oFoo = &Fooy;
}

上記のコンストラクターでの割り当ては合法ですか?私はC++を初めて使用します。

4

1 に答える 1

1

oFooの代わりにする必要がFooあり、メンバーは初期化子リストで初期化する必要があります。

Foo::Foo(Foo1 &Fooy): oFoo(&Fooy) {
}

それ以外の場合は問題ありません。explicitコンストラクターを作成して、不要な暗黙のキャストを防ぐことを検討してください。

于 2012-07-19T21:50:19.333 に答える