C++类构造函数初始化列表详解与实例:传统初始化与初始化列表
#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++中,类的构造函数可以使用两种方式进行成员变量的初始化:传统初始化和初始化列表。
-
传统初始化
- 在构造函数体内部,使用赋值运算符(=)对成员变量进行赋值。
-
初始化列表
- 在构造函数的参数列表和函数体之间,使用冒号(:)后跟一个以逗号分隔的初始化列表,对成员变量进行初始化。
代码示例分析
在上面的代码中,person2 类有两个构造函数,分别演示了两种初始化方式:
- 第一个构造函数
person2(int a, int b, int c)使用传统初始化,在函数体内部对成员变量m_a、m_b和m_c进行赋值。 - 第二个构造函数
person2() :m_a(30), m_b(40), m_c(60)使用初始化列表,直接在定义时对成员变量进行初始化。
初始化列表的优势
- 对于const成员变量和引用类型的成员变量,必须使用初始化列表进行初始化。
- 初始化列表的效率更高,因为它避免了在构造函数体内部进行赋值操作。
- 初始化列表的代码更简洁易读,特别是当类成员变量较多时。
总结
建议在C++编程中,尽量使用初始化列表对类成员变量进行初始化,以提高代码效率、可读性和可维护性。
原文地址: https://www.cveoy.top/t/topic/UwB 著作权归作者所有。请勿转载和采集!