エラーが発生しました:
期待される ';' '('トークンの前。
なぜこうなった?どうすれば解決できますか?
#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);