C++语言程序设计

我们已经知道，类中数据成员可以通过构造函数来初始化，例如：

| 程序段10-2

class Image {
public:
Image(const int w, const int h);
private:
int width;
int height;
//...
};
Image::Image (const int w, const int h)
{
width = w;
height = h;
//...
}

其实，类Image中的width和height的初始化也可以通过成员初始化表来初始化，例如：

| 程序段10-3

class Image {
public:
Image(const int w, const int h);
private:
int width;
int height;
//...
};
Image::Image (const int w, const int h) : width(w), height(h)
{
//...
}

这个定义的效果是width被w初始化，height被w初始化。用成员初始化表初始化类成员与用构造函数初始化类成员的区别在于：前者的初始化是在构造函数被执行以前进行的。
成员初始化表可用于初始化类的任意数据成员（后面要介绍的静态数据成员除外），它被放在构造函数的头和体之间，并用冒号将它与构造函数的头分隔开。它由逗号分隔的数据成员表组成，初值放在一对圆括号中。