构造函数Box有3个参数,分别代表长、宽、高。在主函数中定义对象box1时,指定了实参12,25,30。然后调用成员函数计算长方体的体积。
程序运行的结果如下: box1体积= 9000 box2体积= 9450 提醒:
(1)带形参的构造函数在定义对象时必须指定实参 (2)用这种方法可以实现不同对象的初始化。
3.1.4用参数初始化表对数据成员初始化
C++提供了参数初始化表的方法对数据成员初始化。这种方法不必在构造函数内对数据成员初始化,在函数的首部就能实现数据成员初始化。
函数名(类型1 形参1,类型2 形参2)名2(形参2){ }
:
成员名1(形参1),成员
功能:执行构造函数时,将形参1的值赋予成员1,将形参2的值赋予成员2,形参的值由定义对象时的实参值决定。 此时定义对象的格式依然是带实参的形式: 类名 对象名( 实参1,实参2); 例:定义带形参初始化表的构造函数
Box::Box( int h, int w, int len): height ( h),width(w), length( len ){ } 定义对象: Box box1(12,25,30); …
Box box2(15,30,21);
3.1.5构造函数的重载
构造函数也可以重载。一个类可以有多个同名构造函数,函数参数的个数、参数的类型各不相同。
例3.3:在例3.2的基础上定义两个构造函数其中一个无参数,另一个有参数。 #include
Box(int h,int w,int len):height(h),width(w),length(len){} int volume(); private: int height; int width; int length; }; Box::Box() {
height=10; width=10;
length=10; }
int Box::volume() {
return(height*width*length); } int main() {
Box box1;
cout<<\体积= \.volume()< cout<<\体积= \.volume()< 例子中定义了两个构造函数,一个无参数另一个带三个参数。系统根据定义对象的格式决定调用哪个构造函数。对象box1没有实参系统为它调用无参数的构造函数;对象box2带三个实参系统为它调用带形参的构造函数。 说明: (1)不带形参的构造函数为默认构造函数每个类只有一个默认构造函数,如果是系统自动给的默认构造函数,其函数体是空的。 (2)虽然每个类可以包含多个构造函数,但是创建对象时,系统仅

