c++ 学习之 初始化列表初始化属性

前言

我们来学习一下如何利用初始化列表来初始化属性,相较于我们所一般用的构造函数来初始化属性又有什么不同呢?

正文

我们一般情况下是如何初始话属性的

先看代码

#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;
}

你可能感兴趣的:(c++,c++,学习,算法)