一个类中可以有多个构造函数。这些构造函数必须具有不同的参数表。在一个类中需要接受不同初始化值时,就需要编写多个构造函数,但有时候只需要一个不带初始值的空的Box对象。
Box(int ht=2,int wd=3,int dp=4)
return height*width*depth;
Box thisbox(3,4,5); //初始化
这两个构造函数一个没有初始化值,一个有。当没有初始化值时,程序使用默认值,即2,3,4。
但是这样的程序是不好的。它允许使用初始化过的和没有初始化过的Box对象,但它没有考虑当thisbox给otherbox赋值失败后,volume()该返回什么。较好的方法是,没有参数表的构造函数也把默认值赋值给对象。
height=0;width=0;depth=0;
Box(int ht,int wd,int dp)
height=ht;width=wd;depth=dp;
return height*width*depth;
这还不是最好的方法,更好的方法是使用默认参数,根本不需要不带参数的构造函数。
Box(int ht=0,int wd=0,int dp=0)
height=ht;width=wd;depth=dp;
return height*width*depth;