我们来学习一下如何利用初始化列表来初始化属性,相较于我们所一般用的构造函数来初始化属性又有什么不同呢?
先看代码
#define CRT_SECURE_NO_WARINGS
using namespace std;
// 初始化列表
class Person
{
public:
// 传统初始话做法
Person(int a, int b, int c)
{
m_A = a;
m_B = b;
m_C = c;
int m_A;
int m_B;
int m_C;
};
void test01()
{
Person p(10, 20, 30);
}
int main()
{
test01();
return 0;
}
#define CRT_SECURE_NO_WARINGS
using namespace std;
// 初始化列表
class Person
{
public:
// 初始化列表初始化属性
Person() :m_A(10), m_B(20), m_C(30)
{
}
int m_A;
int m_B;
int m_C;
};
void test01()
{
Person p;
}
int main()
{
test01();
return 0;
}
上面的代码也有不足之处,无法自定义参数的值
看看改进的代码
#define CRT_SECURE_NO_WARINGS
using namespace std;
// 初始化列表
class Person
{
public:
// 初始化列表初始化属性
Person(int a,int b,int c) :m_A(a), m_B(b), m_C(c)
{
}
int m_A;
int m_B;
int m_C;
};
void test01()
{
Person p(10,20,30);
}
int main()
{
test01();
return 0;
}