-1

エラーが発生しました:

期待される ';' '('トークンの前。

なぜこうなった?どうすれば解決できますか?

#include <iostream>

class AB {
int n;
AB(int x) { n = x;}
};


class ED {

AB blee(1);
};
4

3 に答える 3

3

これはおそらく間違って解析され、失敗しています:

AB blee(1);

タイプ のデータ メンバーを初期化しようとしている場合AB、そのようにはできません。C++11 では、次のようにできます。

AB blee{1};

また

AB blee = 1;

EDまたは、のコンストラクターで実行できます。これは、C++11 と C++03 の両方で機能します。

class ED {
  ED() : blee(1) {}
  AB blee;
};
于 2013-02-18T23:25:35.833 に答える
3

member-initializationを介してコンストラクターによってインスタンス化する必要があります。

class ED {
    ED() : blee(1) {}

    AB blee;
};
于 2013-02-18T23:26:35.880 に答える
1

で何をしようとしていますAB blee(1);か? 関数宣言でも関数呼び出しでもありません。

関数を呼び出すには、 の一部のメンバーの本体に入れED、 を残してAB、 だけを残しますblee(1);

int関数を宣言するには、括弧内に型 (例: ) を入れる必要があります。AB blee(int);

于 2013-02-18T23:25:44.683 に答える