如果将第2题中程序的第5行改为用默认参数,即Date(int=1,int=1,int=2005); 分析程序有无问题。

2016-06-25 20:34:43  分类: c++程序设计第三版谭浩强课后答案  参与:

如果将第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;
}
 

来源:c++程序设计第三版谭浩强课后答案

本文链接:http://www.wb98.com/cjia/post/cjia_9.3.html


本站文章搜索:

<< 上一篇下一篇 >>

搜索

Tags列表

赞助商链接