クラス内のイニシャライザを使用すると、なぜ初期化 '='のコピーフォームと初期化 '{}'の直接のフォーム '()'のブレースドリスト形式を使用できますか?C++のクラス内での初期化
class foo{
int a = 5;
int b{5};
int c(5);
};
エラー:型指定子を期待
エラー:構文エラー:
クラス内のイニシャライザを使用すると、なぜ初期化 '='のコピーフォームと初期化 '{}'の直接のフォーム '()'のブレースドリスト形式を使用できますか?C++のクラス内での初期化
class foo{
int a = 5;
int b{5};
int c(5);
};
エラー:型指定子を期待
エラー:構文エラー:
「を定数」私はそれを変数として解析されることはありませんが、それは関数の宣言として解析されますねそれは、そこに5を書き込ませない理由です。そこに引数がないか、通常の、またはデフォルトのタイプの引数があると予想しています。また、エラーとして、int型や5型などの型が指定されていることが示唆されています。また、関数内で定数を渡すことができないことを示す別のエラーがあります。これは構文エラーです。
既に回答があるので重複した質問の回答を書かない方が良いです!!! – Destructor
次回からそのことを覚えておきます。 –
言語がどのように指定されているかがわかるためです。 –
_most vexing parse_ !!!を読む – Destructor