注册 登录
编程论坛 C++教室

帮我解释一下这段程序好吗

wxm198427 发布于 2008-10-23 16:24, 559 次点击
我有以下一段程序,是对的,但是我还是不明白这个构造函数怎么回事,具体帮我解释解释,谢谢了
#include <iostream>
using namespace std;
class Box
{public:
Box(int h=10,int w=10,int len=10);        //在声明构造函数时指定默认参数
int volume( );
 private:
int height;
int width;
int length;
};
Box::Box(int h,int w,int len)        //在定义函数时可以不指定默认参数
{height=h;
width=w;
length=len;
}
int Box::volume( )
{return(height*width*length);
}

int main( )
{
Box box1;                   //没有给实参
cout<<"The volume of box1 is  "  <<box1.volume( )<<endl;
Box box2(15);               //只给定一个实参
cout<<"The volume of box2 is  " <<box2.volume( )<<endl;
Box box3(15,30);            //只给定2个实参
cout<<"The volume of box3 is  "  <<box3.volume( )<<endl;
Box box4(15,30,20);            //给定3个实参
cout<<"The volume of box4 is  "  <<box4.volume( )<<endl;
return 0;
}
3 回复
#2
beyondlwm2008-10-23 16:38
你的问题,应该翻书

默认参数的意思就是,如果不指明这个参数,那就按照默认的处理
所以你构造的时候可以不传,也可以传1个 或者2个或者 3个参数
因为你没传的部分,在你声明的时候已经指定了。
#3
huxiangking2008-10-23 19:49
顶楼上 书上原题额 昨天老师刚教了
具体 顶楼上
#4
wxm1984272008-10-24 13:51
就是啊,就是书上原题,但是我就是不知道这个构造函数怎么回事,你看啊,这个构造函数中不是有三个形式参数吗,按照结果,那这个形式参数就跟C语言中的变量一样是可以改变的,你把15传上去,就改变了他的值,接着执行,是不是这个道理,或者大家还有什么好的解释?请各抒己见,共同提高…………
1