エラーが発生しました:
期待される ';' '('トークンの前。
なぜこうなった?どうすれば解決できますか?
#include <iostream>
class AB {
int n;
AB(int x) { n = x;}
};
class ED {
AB blee(1);
};
これはおそらく間違って解析され、失敗しています:
AB blee(1);
タイプ のデータ メンバーを初期化しようとしている場合AB、そのようにはできません。C++11 では、次のようにできます。
AB blee{1};
また
AB blee = 1;
EDまたは、のコンストラクターで実行できます。これは、C++11 と C++03 の両方で機能します。
class ED {
ED() : blee(1) {}
AB blee;
};
member-initializationを介してコンストラクターによってインスタンス化する必要があります。
class ED {
ED() : blee(1) {}
AB blee;
};
で何をしようとしていますAB blee(1);か? 関数宣言でも関数呼び出しでもありません。
関数を呼び出すには、 の一部のメンバーの本体に入れED、 を残してAB、 だけを残しますblee(1);。
int関数を宣言するには、括弧内に型 (例: ) を入れる必要があります。AB blee(int);