C++11之前类成员初始化,都是通过构造函数,现在C++11可以直接在类成员定义时初始化,像java一样。接下来看一段代码来体会下类成员初始化。直接初始化类成员方法,也叫就地初始化。
类成员初始化代码例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
//梁笔记 //zouzhongliang.com #include <iostream> using namespace std; class Test{ private: int a = 1; int b {2}; int c; public: Test(){} Test(int _c) :c(_c) {} Test(int _a,int _b,int _c) :a(_a) ,b(_b) ,c(_c) {} }; int main() { Test test1; //a=1 b=2 Test test2(3); //a=1 b=2 c=3 Test test3(4,5,6);//a=4 b=5 c=6 return 0; } |
C++11新增类成员初始化方式:
可以用“=”或“{}”进行初始化。
1 2 |
int a = 1; int b {2}; |
C++11新增类成员初始化与构造函数:
如果构造函数在成员初始化列表中提供了相应的值,这些默认值会被覆盖。
1 |
Test test3(4,5,6);//a=4 b=5 c=6 |