2016-05-15 18 views
0

クラス内のイニシャライザを使用すると、なぜ初期化 '='のコピーフォームと初期化 '{}'の直接のフォーム '()'のブレースドリスト形式を使用できますか?C++のクラス内での初期化

class foo{ 
    int a = 5; 
    int b{5}; 
    int c(5); 
}; 

エラー:型指定子を期待

エラー:構文エラー:

+2

言語がどのように指定されているかがわかるためです。 –

+0

_most vexing parse_ !!!を読む – Destructor

答えて

0

「を定数」私はそれを変数として解析されることはありませんが、それは関数の宣言として解析されますねそれは、そこに5を書き込ませない理由です。そこに引数がないか、通常の、またはデフォルトのタイプの引数があると予想しています。また、エラーとして、int型や5型などの型が指定されていることが示唆されています。また、関数内で定数を渡すことができないことを示す別のエラーがあります。これは構文エラーです。

+0

既に回答があるので重複した質問の回答を書かない方が良いです!!! – Destructor

+0

次回からそのことを覚えておきます。 –

関連する問題