比方说要在一个类内对多个变量进行初始化操作
class Example
{
public:
Example(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()
{
Example e(10, 20, 30);
cout<<e.m_A<<e.m_B<<e.m_C<<endl;
}
这样的效率就会降低,因此使用初始化列表的方式来提高效率。
class Example
{
public:
Example:m_A(10), m_B(20), m_C(30)
{
}
int m_A;
int m_B;
int m_C;
};
void test01()
{
Example e;
cout<<e.m_A<<e.m_B<<e.m_C<<endl;
}
这样的写法就是一个初始化列表,但是可以看到它依然有缺点,比如在这里给三个变量赋的初值已经是固定的,不能发生改变,因此一般使用下面的写法使得初值更加灵活
class Example
{
public:
Example(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()
{
Example e(20, 30, 10); //参数的传递就可以在这里灵活更改了
cout<<e.m_A<<e.m_B<<e.m_C<<endl;
}