您的位置:程序门 -> c/c++ -> c++ 语言



help?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


help?
发表于:2007-05-18 17:12:27 楼主
class   tdata
{
public:
tdate(int   d){
month=4;
day=d;
year=1998;}
tdate(int   m,int   d=12){
month=m;
day=d;
year=1996;}
protected:
int   month;
int   day;
int   year;
};
void   main()
{
tdate   aday(11);//为什么这里会报错???

}

thanks!!!

发表于:2007-05-18 17:15:381楼 得分:0
tdate(int   d)
tdate(int   m,int   d=12)

你觉得编译器会选择那个构造函数来调用?

你会选择哪个?
发表于:2007-05-18 17:15:432楼 得分:0
因为两个构造函数歧义了
发表于:2007-05-18 17:16:253楼 得分:0
构造函数设计不当~!
重新设计吧
发表于:2007-05-18 17:16:544楼 得分:0
tdate(int   m,int   d){       //既然提供了单参数构造函数,这个默认参数就不要了,否则歧义
month=m;
day=d;
year=1996;}
发表于:2007-05-18 17:23:005楼 得分:0
还有一个问题是class   tdata   ,而构筑函数是tdate.是否有问题?
发表于:2007-05-18 17:34:016楼 得分:0
明显是他写错了啊
发表于:2007-05-18 17:47:387楼 得分:0
明显是两个构造函数产生了歧义啊~~
还有关于下面这句代码:
----------------
tdate   aday(11);//这里的 '11 '不该直接作为参数,应该先用一个同值的变量来代替,c++标准编程和结构化编程中都有指出,对于这种情况叫做流氓参数~呵呵,纯属建议哈~~
----------------


快速检索

最新资讯
热门点击