构造函数初始化列表(4)

作用:C++提供了初始化列表语法,用来初始化属性

语法:构造函数():属性1(值1),属性2(值2)...{}

重点:体会每种写法的相通之处和区别

 1 #include <iostream>
 2 using namespace std;
 3 
 4 //初始化列表
 5 class Person
 6 {
 7 public:
 8 
 9     //传统的初始化操作
10     /*Person(int a, int b, int c)
11     {
12         m_A = a;
13         m_B = b;
14         m_C = c;
15     }*/
16 
17     //初始化列表初始化属性操作
18     Person() :m_A(10), m_B(20), m_C(30)
19     {
20 
21     }
22 
23     //另外一种写法,无论哪种写法,结果都是一样的
24     Person(int a,int b,int c) :m_A(a), m_B(b), m_C(c)
25     {
26 
27     }
28 
29     int m_A;
30     int m_B;
31     int m_C;
32 };
33 
34 void test_01(void)
35 {
36     //传统初始化操作,创建对象时就给它赋初值
37     /*Person p(10, 20, 30);
38     cout << "m_A = " << p.m_A << endl;
39     cout << "m_B = " << p.m_B << endl;
40     cout << "m_C = " << p.m_C << endl;*/
41 
42     //初始化列表初始化属性操作
43     /*Person p;
44     cout << "m_A = " << p.m_A << endl;
45     cout << "m_B = " << p.m_B << endl;
46     cout << "m_C = " << p.m_C << endl; */
47 
48     //另外一种写法
49     Person p(30,20,10);
50     cout << "m_A = " << p.m_A << endl;
51     cout << "m_B = " << p.m_B << endl;
52     cout << "m_C = " << p.m_C << endl;
53 }
54 
55 int main(void)
56 {
57     test_01();
58 
59     system("pause");
60     return 0;
61 }

猜你喜欢

转载自www.cnblogs.com/huanian/p/12696245.html
今日推荐