请C++编程高手们帮我解答:带默认参数的构造函数在声明和定义时是否应该带默认参数 谢谢!

在C++编程中,在类里面声明构造函数时可以带默认参数,那么,在定义构造函数时,是否也应该带默认参数再具体定义呢?如果两个都带,为什么有时会造成编译错误呢?
谢谢!

两个地方都需要申明参数,但是在类中申明构造函数时候需要参数默认值,如:
Class X
{
X(int a=5);
}
在实现时候不用再给出默认值:
X::X(int a)
{
...
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-24
默认参数不得在函数声明和函数体实现时同时出现
定义构造函数并不一定需要默认参数
第2个回答  2011-04-24
构造函数分带参数和不带参数的两种。
例如:
不带参数的:
class Time
{public :
Time( )//l类内定义无参数构造函数
{hour=0;
minute=0;
sec=0;
}
带参数的:
class Box
{public :
Box(int,int,int);
int volume( );
private :
int height;
int width;
int length;
};
Box::Box(int h,int w,int len) //在类外定义带参数的构造函数
{height=h;
width=w;
length=len;
}
如果采用的是带参数的构造函数,则因该注意参数的个数问题,正确使用编译不会出错的。
第3个回答  2011-04-24
不可以的!!!
c++ 的形参可以给默认值;
java 是不可以的。构造函数一样也不可以。
相似回答