类中指任何类型的const 和引用数据成员。const 和引用数据成员也必须是在成员初始化表中被初始化,否则,就会产生编译时刻错误。例如,下列构造函数的实现将导致编译时刻错误:
class ConstRef {
public:
ConstRef( int ii );
private:
int i;
const int ci;
int &ri;
};
ConstRef::ConstRef( int ii )
{ // 赋值
i = ii;   // ok
ci = ii; // 错误不能给一个 const 赋值
ri = i;   // 错误 ri 没有被初始化
}
当构造函数体开始执行时,所有const 和引用的初始化必须都已经发生。因此,只有将它们在成员初始化表中指定这才有可能。正确的实现如下:
// ok: 初始化引用和 const
ConstRef::ConstRef( int ii ):ci( ii ), ri( i )
{ i = ii; }
每个成员在成员初始化表中只能出现一次,初始化的顺序不是由名字在初始化表中的顺序决定,而是由成员在类中被声明的顺序决定的。

成员初始化表只提供该类数据成员的初始化。在构造函数体内对数据成员设置值是一个赋值操作。