【转】C++11 初始化成员变量

C++98中,支持在类声明的时候使用等号"="初始化类中静态成员常量,这种声明方式我们称之为"就地"声明。
C++98要求静态成员必须满足常量性,而且类型必须是整型或者枚举型,而非静态成员变量的初始化则必须在构造函数中进行。
 

在C++11中,允许使用等号=或者花括号{}进行就地的非静态成员变量初始化

初始化列表的效果总是优先于就地初始化的

struct C {
    C(int i, int j):c(i),d(j) {};
    int c;
    int d;
};

struct init {
    int a = 1;
    string b{"hello"};
    C c{1, 3};
};

 

参考链接:https://www.jianshu.com/p/e944f676fa1c

posted @ 2020-08-17 14:27  gooneybird  阅读(255)  评论(0)    收藏  举报