作用:
初始化成员属性,相比赋值初始化方法更高效、大气
注意点:
初始化列表的初始顺序与属性声明的顺序有关,而非初始化列表的顺序,但最好保持两者顺序相一致
#include <iostream>
class Person
{
public:
Person()
{
std::cout << "默认构造函数调用" << std::endl;
}
//传统初始化方式
/*Person(int age, int height, int weight)
{
m_age = age;
m_height = height;
m_weigth = weight;
}*/
//初始化列表方式
//初始化顺序与属性成员声明顺序相关,与实际初始化列表顺序无关,但最好保持与声明顺序一致
Person(int age, int height, int weight) :m_age(age), m_height(height), m_weigth(weight)
{
}
~Person()
{
std::cout << "析构函数调用" << std::endl;
}
int GetAge()
{
return m_age;
}
int GetHeight()
{
return m_height;
}
int GetWeight()
{
return m_weigth;
}
private:
int m_age;
int m_height;
int m_weigth;
};
int main()
{
Person p1(18, 170, 60);
std::cout << "p1年龄:" << p1.GetAge() << std::endl;
std::cout << "p1身高:" << p1.GetHeight() << std::endl;
std::cout << "p1体重:" << p1.GetWeight() << std::endl;
system("pause");
return 0;
}