永发信息网

c++构造函数的问题

答案:3  悬赏:40  手机版
解决时间 2021-04-29 20:33

#include <iostream>
using namespace std;
class Date
{
public:
Date(int =0,int =0,int=0 );
// 如果是这样就成功Date(int ,int ,int );
//但我一定要这样付初值但结果一样该怎样改
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(int =0,int =0,int=0 );//默认构造函数
Date(int,int);
Date(int);
Date(); //默认构造函数


这样含有2个默认构造函数,当然就不行啦,改为Date(int ,int ,int )当然就可以啦

全部回答

首先,默认构造函数是这样定义的:没有参数的构造函数是默认构造函数。默认构造函数有俩种:一种是系统自动提供的,另一种是程序员定义的。系统提供指的是当类中没有构造函数时,系统自动的调用的构造函数。程序员定义的就是Date()这种形式。带了参数的就不叫默认构造函数了.

其次,Date(int =0,int =0,int=0 );这是语法上的错误,没有这样赋值的!

你 那么写 是 错误的 Date(int =0,int =0,int=0 ); 你折里面是 给谁赋值呢?

Date(int year,int mounth,int day)

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么下载小说到NOKIA5310手机上?
高院生活区(南门)地址有知道的么?有点事想过
QQ华夏祝福之石可以用好久
钓鱼的子线母线是什么意思
大象漆喜达屋
学生会宣传部主要职能以及该学会的东西
求日本地震赈灾歌曲把幸福带给每个人(しあわ
问道54级的BB可以吃下多少级的天书啊
长兴金良竹木工艺品厂在哪里啊,我有事要去这
这款NIKE的鞋子是什么型号或名字?
快乐女生中谁的歌与人最棒 。
劲舞团冬几标志今天买冬几收藏卡还可以领标志
爱的刚刚好的句子,盼望天亮害怕黑夜的诗词
胃不好的人吃什么会比较好?(比如小西点类的
北人bb机是不是北人08印刷机
推荐资讯
高三学习委员的辞职理由
萤火虫要怎么养
多啦A梦大雄的人鱼大海战
为什么世上会有这么多不平事了
关于QQ堂的
怎样可以获得Q币
图标解答 大家看看这是什么图标
论述时间价值和运用时间价值的作用?
一龙一猪的意思是什么,一龙一猪是个成语吗?
这个怎么样?是什么,请鉴别
动漫游艺乐园在什么地方啊,我要过去处理事情
从羊西线到成都大学怎样走?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?