私はコードスニペットhereを読んでいます。セクションにアクセスするには、「Constクラスデータメンバー」を検索してください。コードは以下のようなものです:constメンバーをC++コンストラクタで初期化できますか?
class Test
{
const int i;
public:
Test (int x)
{
i=x;
}
};
int main()
{
Test t(10);
Test s(20);
}
は、私はそれが正しいではありません、私を警告VS2013を使用しています。私が知っているように、constメンバ変数は、初期化リストによってのみ初期化できます。 Sth。以下のような:
Test (int x):i(x){}
は(?もしそうなら、変更は、右の違いは思わない関数本体で初期化し、合理的に聞こえる)ことをサポートするための新しいC++標準の更新をしましたか?または文書が間違っている(私はそれが間違いをしないと推測している)。
最初のコードスニペットは、どのC++標準でも正しくありません。 – DeiDei
はい、初期化できます。しかし、あなたはそれを初期化していません、あなたはそれに割り当てています。 – StoryTeller
チュートリアルを続行してください。コンストラクタのイニシャライザリストについては、後ほど説明します。http://www.studytonight.com/cpp/initializer-list-in-cpp.php –