0

コンストラクターがオブジェクトへの参照を受け取り、それをプライベート変数に格納しようとしています。イニシエーション リストが機能しません。これはヘッダーファイルです:

private:
  Game &game;

public:     
  Player(Game & g): game(g);

開始リストを使用するのが最善の方法ですか?何が間違っていますか?

4

1 に答える 1

3

コンストラクタ初期化子リストは、それを行うための「最良の」方法ではありません。それが唯一の方法です。

コンストラクタ初期化子リストは、コンストラクタ定義の一部です。これは、イニシャライザ リストの指定を開始したら、本体を含むコンストラクタの完全な定義を提供する必要があることを意味します。

public:     
  Player(Game &g): game(g)
    {}

コンストラクターが他に何もすることがない場合、本体は空になります (上記の例のように)。ただし、いずれにしても本体を指定する必要があります。

于 2012-11-21T00:09:08.877 に答える