分类：电脑/网络-程序设计
问题：C++程序的错误在何处？？#include&lt;iostrea 
#include<tream>usingnamespacestd;classBox{ (intw=10,inth=10,intlen=10){height=h;width=w;length=len;}Box(){height=0;width=0;length=0;};intvolume(){return(height*width*length);} ,width,length;};intmain(){Boxbox1;cout<<box1.volume()<<endl;Boxbox2(15);cout<&l#include<tream>usingnamespacestd;classBox{ (intw=10,inth=10,intlen=10){height=h;width=w;length=len;}Box(){height=0;width=0;length=0;};intvolume(){return(height*width*length);} ,width,length;};intmain(){Boxbox1;cout<<box1.volume()<<endl;Boxbox2(15);cout<<box2.volume()<<endl;return0;}
回答：将第一个构造函数的第一参数(w)的默认值去掉,
也就是改成
Box(int w,int h=10,int len=10) 
就行了.

因为你把它的参数都加上默认值的话,当出现

Box box1;

程式就不知道是应该调用 Box(); 还是调用 Box(int w=10,int h=10,int len=10); 
那这样就报错不执行了
所以写程式的时候要避免语句的二义性.