改错题:类中私有成员的访问
时间: 1ms 内存:128M
描述:
/*改错题:设计一个日期类和时间类,并编写全局函数display用于显示日期和时间。要求:display函数作为类外的普通函数,而不是成员函数在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。下面的程序中,在begin到end部分存在语法错误。请改正错误,使程序按下面输入输出的规定运行。注意:只提交修改过的begin到end部分的代码。*/#include <iostream>using namespace std;//将程序需要的其他成份写在下面,只提交修改后的begin到end部分的代码//******************** begin ********************class Time; //类的提前声明class Date //日期类{public:Date(int y,int m,int d){year=y;month=m;day=d;}private:int year;int month;int day;};class Time //时间类{public:Time(int h,int m,int s){hour=h;min=m;sec=s;}private:int hour;int min;int sec;};void display(const Date & d, const Time & t){cout<<d.year<<"/"<<d.month<<"/"<<d.day<<endl;cout<<t.hour<<":"<<t.min<<":"<<t.sec<<endl;}//********************* end ********************int main(){void display(const Date &,const Time &);int year,month,day;cin>>year>>month>>day;Date d1(year,month,day);int hour,minute,second;cin>>hour>>minute>>second;Time t1(hour,minute,second);display(d1,t1);return 0;}
输入:
年 月 日
时 分 秒
输出:
年/月/日
时:分:秒
示例输入:
2013 12 23
14 23 50
示例输出:
2013/12/23
14:23:50
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int year,month,day,hour,minute,scend;
scanf("%d%d%d\n%d%d%d",&year,&month,&day,&hour,&minute,&scend);
printf("%d/%d/%d\n%d:%d:%d",year,month,day,hour,minute,scend);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
#include<string.h>
using namespace std;
class join_Army
{
public:
join_Army() {}
join_Army(int y,int m,int d):join_year(y),join_month(m),join_day(d) {}
friend ostream& operator<<(ostream& out,join_Army &a);
private:
int join_year;
int join_month;
int join_day;
};
ostream& operator<<(ostream& out,join_Army &a)
{
out<<"join_time:"<<a.join_year<<"-"<<a.join_month<<"-"<<a.join_day<<endl;
return out;
}
class soider
{
public:
soider() {}
soider(join_Army t,char A_g[],char s_t[]):join_time(t)
{
strcpy(Army_Garrison,A_g);
strcpy(soider_type,s_t);
}
friend ostream& operator<<(ostream& out,soider &a) ;
private:
join_Army join_time;
char Army_Garrison[20];
char soider_type[10];
};
ostream& operator<<(ostream& out,soider &a)
{
out<<a.join_time;
out<<"Army_Garrison:"<<a.Army_Garrison<<endl;
out<<"soider_type:"<<a.soider_type<<endl;
return out;
}
int main()
{
int y,m,d;
char a_g[20],s_t[20];
cin>>y>>m>>d;
join_Army time(y,m,d);
cin>>a_g>>s_t;
soider so(time,a_g,s_t);
cout<<so<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
