c++程序设计第3版谭浩强课后答案
如果将第2题中程序的第5行改为用默认参数,即Date(int=1,int=1,int=2005); 分析程序有无问题。上机编译,分析出错信息,修改程序使之能通过编译。要求保留上面一行给出的构造函数,同时能输出与第2题的程序相同的输出结果。
【解】 编译时出错,因为构造函数使用默认参数后就不能再使用重载的构造函数,否则就会出现歧义。
修改程序如下:
#include <iostream>
using namespace std;
class Date
{public:
Date(int=1,int=1,int=2005);
void display();
private:
int month;
int day;
int year;
};
Date::Date(int m,int d,int y):month(m),day(d),year(y)
{ }
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;
}
本文链接:http://www.wb98.com/cjia/post/cjia_9.3.html
本站文章搜索: