变量定义制定了变量的类型和标示符,也可以为对象提供初始值。定义时指定了初始化的对象被称为是已初始化的(initialized)。C++支持两种初始化变量的形式:复制初始化(cooy-initialization)和直接初始化(direct-initialization)。复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中:
int ival(1024); // direct-initialization
int ival = 1024; // copy-initialization
对于以上两种类型的初始化:
对内置类型来说:复制初始化和直接初始化几乎没有差别;
对类类型的对象来说:有些初始化仅能用直接初始化完成。因为每一个类都可能会定义一个或几个特殊的成员函数来告诉我们如何初始化类类型的变量。定义如何进行初始化的成员函数称为构造函数(constructor)。和其他函数一样,构造函数能接受多个参数。一个类可以定义几个构造函数,每一个构造函数必须接受不同数目或者不同类型的参数。