【转】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}; };

浙公网安备 33010602011771号