既然我们一般都是在构造函数里面初始化对象的每一个成员,那我们为什么要用初始化成员列表呢?下面的三种情况中在构造函数里面必须用到成员初始化列表。
- 需要初始化的数据成员是对象的情况。
- 需要初始化const修饰的类成员
- 需要初始化引用成员数据
举例说明:
class cPoint
{
private:
int m_x;
int m_y;
public:
cPoint( int x, int y )
{
m_x = x;
m_y = y;
}
}
class cCircle
{
private:
cPoint m_centre; // 对象成员
const int m_cRelPlane; // const成员
int& m_zeroPlane; // 引用成员
public:
cCircle( void )
: m_centre( 1, 2 ), m_cRelPlane( 3 ), m_zeroPlane( 4 )
{
}
}