初始化列表代码实例
#define _CRI_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Person
{
public:
Person() {}
int m_A;
int m_B;
int m_C;
//有参构造初始化数据
/*
Person(int a, int b,int c)
{
m_A = a;
m_B = b;
m_C = c;
}
*/
//利用初始化列表来初始化数据
//构造函数后面+:属性(参数),属性(参数)...
Person(int a, int b, int c) :m_A(a), m_B(b), m_C(c) //初始化列表
{}
};
void test01()
{
Person p1(10, 20, 30);
cout << "p1的m_A:" << p1.m_A << endl;
cout << "p1的m_B:" << p1.m_B << endl;
cout << "p1的m_C:" << p1.m_C << endl;
}
int main()
{
test01();
return 0;
}
explicit关键字
C++提供了关键字explicit,禁止通过构造函数进行的隐式转换。声明为explicit的构造函数不能在隐式转换中使用。
注意:
- explicit用于修饰构造函数,防止隐式转化
- 是针对单参数的构造函数ÿ