#include<iostream>
using namespace std;

class person2
{
public:
	//传统初始化
	person2(int a, int b, int c)
	{
		m_a = a;
		m_b = b;
		m_c = c;
	}

	//初始化列表初始化属性
	person2() :m_a(30), m_b(40), m_c(60)
	{

	}

	int m_a;
	int m_b;
	int m_c;
};
//传统初始化函数测试
void test06()
{
	person2 p1(10, 20, 30);
	cout << '输出传统初始化m_a为: ' << p1.m_a << endl;
	cout << '输出传统初始化m_b为: ' << p1.m_b << endl;
	cout << '输出传统初始化m_c为: ' << p1.m_c << endl;
}
//写死初始化列表初始化属性 测试
void test07()
{
	person2 p2;
	cout << '输出写死初始化列表初始化m_a为: ' << p2.m_a << endl;
	cout << '输出写死初始化列表初始化m_b为: ' << p2.m_b << endl;
	cout << '输出写死初始化列表初始化m_c为: ' << p2.m_c << endl;
}

int main()
{
	test06();

	test07();
	system('pause');
	return 0;
}

C++类构造函数初始化列表详解

在C++中,类的构造函数可以使用两种方式进行成员变量的初始化:传统初始化初始化列表

  1. 传统初始化

    • 在构造函数体内部,使用赋值运算符(=)对成员变量进行赋值。
  2. 初始化列表

    • 在构造函数的参数列表和函数体之间,使用冒号(:)后跟一个以逗号分隔的初始化列表,对成员变量进行初始化。

代码示例分析

在上面的代码中,person2 类有两个构造函数,分别演示了两种初始化方式:

  • 第一个构造函数 person2(int a, int b, int c) 使用传统初始化,在函数体内部对成员变量 m_am_bm_c 进行赋值。
  • 第二个构造函数 person2() :m_a(30), m_b(40), m_c(60) 使用初始化列表,直接在定义时对成员变量进行初始化。

初始化列表的优势

  • 对于const成员变量和引用类型的成员变量,必须使用初始化列表进行初始化。
  • 初始化列表的效率更高,因为它避免了在构造函数体内部进行赋值操作。
  • 初始化列表的代码更简洁易读,特别是当类成员变量较多时。

总结

建议在C++编程中,尽量使用初始化列表对类成员变量进行初始化,以提高代码效率、可读性和可维护性。

C++类构造函数初始化列表详解与实例:传统初始化与初始化列表

原文地址: https://www.cveoy.top/t/topic/UwB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录