C 定义一个Date类,实现输出输入日期,求指出错误!!急~~

[复制链接]
查看11 | 回复2 | 2011-9-19 01:17:43 | 显示全部楼层 |阅读模式
#includeiostreamusingnamespacestd;classDate{private://私有数据成员intYear,Month,Date;public://外部接口,公有成员函数Date(intY,intM,intD){Year=Y;Month=M;Date=D;}voidSetDate(intNewY,intNewM,intNewD);//成员函数,类体外声明“年月日输入”voidShowTime()//成员函数,类体内声明“年月日输出”{coutYear\"年\"Month\"月\"Date\"日\"endl;}};voidDate::SetDate(intNewY,intNewM,intNewD){//cinYearMonthDate;Year=NewY;Month=NewM;Date=NewD;}intmain(){inty=0,m=0,d=0;cout\"本程序完成日期输入输出任务:\"endl;cout\"日期输入:\";cinymd;Datea;a.SetDate(y,m,d);a.ShowTime();return0;}1e:\\c\\date\\date\\main.cpp(6):errorC2461:“Date”:构造函数语法缺少形参1e:\\c\\date\\date\\main.cpp(10):errorC2513:“Date”:在“=”前没有声明变量1e:\\c\\date\\date\\main.cpp(14):errorC2275:“Date”:将此类型用作表达式非法1e:\\c\\date\\date\\main.cpp(23):errorC2513:“Date”:在“=”前没有声明变量1e:\\c\\date\\date\\main.cpp(32):errorC2512:“Date”:没有合适的默认构造函数可用
回复

使用道具 举报

千问 | 2011-9-19 01:17:43 | 显示全部楼层
在main中Datea;没有给初值,你可以在classDate中把Date(intY,intM,intD){Year=Y;Month=M;Date=D;}改成Date(intY=0,intM=0,intD=0){Year=Y;Month=M;Date=D;}这样你没给初值的时候默认Y=0;M=0;D=0;否则你在main中必须Datea(Y,M,D)Y,M,D是你自己给的数字追问谢谢~还有一个问题voidShowTime(){coutYear\"年\"Month\"月\"Date\"日\"endl;//errorC2275:“Date”:将此类型用作表达式非法};//成员函数,类体内声明“年月日输出”errorC2275:“Date”:将此类型用作表达式非法这是为什么?
回复

使用道具 举报

千问 | 2011-9-19 01:17:43 | 显示全部楼层
你的构造函数和主函数中定义对象这两个产生了矛盾。你的构造函数是:Date(intY,intM,intD){Year=Y;Month=M;Date=D;}它就是用来给对象初始化的,你在这没有设定参数缺省值,所以主函数中定义对象时必须同时给出三个实参才行。解决的办法,把这个构造函数删了就行了。它会产生一个缺省构造函数的,反正你setDate函数跟它一个功能。追问谢谢~还有一个问题voidShowTime(){coutYear\"年\"Month\"月\"Date\"日\"endl;//errorC2275:“Date”:将此类型用作表达式非法};//成员函数,类体内声明“年月日输出”errorC2275:“Date”:将此类型用作表达式非法这是为什么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行