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;
} 展开
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;
} 展开
展开全部
date(); 和date(int=1,int=1,int=2005); 这两个是让编译器分辨不出来的,差不多也就是重复定义吧,因为后面的带默认参数,在调用的时候可以不带参数,所以,电脑不知道到底是默认构造函数,还是带默认参数的构造函数,解决办法是可以把date()去掉!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这几位都说的对,你那想法完全就是扯淡。这叫接口重复定义。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//欢迎在线讨论
把
date(int=1,int=1,int=2005);
改为
date(int m,int d,int y);
把
date(int=1,int=1,int=2005);
改为
date(int m,int d,int y);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
时间函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询