首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

构造函数-重载和有默认参数 同时出现的有关问题

2013-04-21 
构造函数-重载和有默认参数 同时出现的问题代码附后,问题 : 造成这种错误的原因是什么?代码如下#include

构造函数-重载和有默认参数 同时出现的问题
代码附后,
问题 : 造成这种错误的原因是什么?


代码如下
#include <iostream>
using namespace std;

class Date
{
public:
Date(int=1,int=1,int=2005);     // 此行改成 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 d4;时
由于你提供了默认的参数
所以编译器不知道这里是用
Date();还是Date(int=1,int=1,int=2005); 去构造这个对象

热点排行