01 .const变量初始化列表
由于定义常量就必须初始化,但是在类中定义变量不能直接初始化,所以需要在构造函数后面加上:(具体数值) 来通过初始化列表来初始化;
代码如下:
#include<iostream>
using namespace std;
class CFun
{
public:
const int a;
public:
CFun():a(2) //通过初始化列表来初始化const常量
{
}
};
int main()
{
CFun fun;
cout << fun.a << endl;
system("pause");
return 0;
}
}
02 初始化列表顺序
#include"iostream"
using namespace std;
class CFun
{
//============情况1,先在初始化列表中依次初始化a,b,c===========//
//public:
// int a;
// int b;
// int c;
//============情况2,先在初始化列表中依次初始化c,a,b===========//
//public:
//int c;
//int a;
//int b;
//============情况3,先在初始化列表中依次初始化b,c,b===========//
public:
int b;
int c;
int a;
public:
CFun():a(1),b(a),c(b)
{
}
};
int main()
{
CFun fun;
cout << fun.a << endl;
cout << fun.b << endl;
cout << fun.c << endl;
system("pause");
return 0;
}
三种情况输出结果依次如下:
03 一类初始另一类(带参数)
#include<iostream>
using namespace std;
class CFun0
{
private:
int b;
public:
CFun0(int a)
{
b=a;
}
public:
void Show()
{
cout << b << endl;
}
};
class CFun1
{
public:
CFun0 fun0;
public:
CFun1():fun0(2)
{
}
};
int main()
{
CFun1 fun1;
fun1.fun0.Show();
system("pause");
return 0;
}
输出结果如下图: