c++题目,带默认参数的构造函数

#include<iostream.h>classdate{public:date(int=1,int=1,int=2005);//如果我也要保留上面的语句,要得程序的四... #include<iostream.h>

class date{
public:
date(int=1,int=1,int=2005);
//如果我也要保留上面的语句,要得程序的四个正确结果,下面应该怎么改?
date(int,int);
date(int);
date();
void display();
private:
int month;
int day;
int year;
};

date::date(int m,int d,int y):month(m),day(d),year(y){}

date::date(int m,int d):month(m),day(d){year=2005;}

date::date(int m):month(m){day=1;year=2005;}

date::date(){month=1;day=1;year=2005;}

void date::display(){
cout<<month<<"/"<<day<<"/"<<year<<endl;}

int main()
{
date d1(10,13,2005);
date d2(12,30);
date d3(10);
date d4;
d1.display();
d2.display();
d3.display();
d4.display();
return 0;
}
展开
 我来答
百度网友edd6353bd
2009-03-24 · TA获得超过1161个赞
知道小有建树答主
回答量:2513
采纳率:0%
帮助的人:1410万
展开全部
date(); 和date(int=1,int=1,int=2005); 这两个是让编译器分辨不出来的,差不多也就是重复定义吧,因为后面的带默认参数,在调用的时候可以不带参数,所以,电脑不知道到底是默认构造函数,还是带默认参数的构造函数,解决办法是可以把date()去掉!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
习惯这生活
2009-03-24 · 超过17用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:59万
展开全部
这几位都说的对,你那想法完全就是扯淡。这叫接口重复定义。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangyafei3020
2009-03-24 · TA获得超过418个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:0
展开全部
//欢迎在线讨论

date(int=1,int=1,int=2005);
改为
date(int m,int d,int y);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丙星晴h
2009-03-24 · TA获得超过3.2万个赞
知道大有可为答主
回答量:4.3万
采纳率:17%
帮助的人:7836万
展开全部
时间函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式