簡體   English   中英

在C ++ 11中初始化類成員變量

[英]Initialize class member variables in C++ 11

考慮以下類定義:

class C {
public:
    int i = 9;
    const int j = 2;
};

編譯時(不使用標志來啟用C ++ 11)(使用g ++,例如g++ -o test test.cpp ),編譯器會抱怨成員變量的初始化。 但是,使用-std=c++11可以正常工作。

為什么在C ++ 11中更改了此規則? 以這種方式初始化成員變量是否被視為不良做法?

在聲明時初始化非靜態數據成員不僅是“不好的做法”; C ++ 11之前根本根本不可能。

等效的C ++ 03代碼為:

class C
{
public:

    C() : i(9), j(2)
    {
    }

    int i;
    const int j;
};

以防萬一: 構造函數中奇怪的冒號成員語法是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM