第十六周oj刷题——Problem I: 改错题:类中私有成员的訪问
Description
改错题:
设计一个日期类和时间类,并编写全局函数display用于显示日期和时间。
要求:display函数作为类外的普通函数,而不是成员函数
在主函数中调用display函数。display函数分别引用Time和Date两个类的对象的私有数据。输出年、月、日和时、分、秒。
Input
年 月 日
时 分 秒
Output
年/月/日
时:分:秒
Sample Input
2013 12 23
14 23 50
Sample Output
2013/12/23
14:23:50
/* All rights reserved. * 文件名:test.cpp * 作者:陈丹妮 * 完毕日期:2015年 6 月 27 日 * 版 本 号:v1.0 */ #include <iostream> using namespace std; class Time; //类的提前声明 class Date //日期类 { public: Date(int y,int m,int d) { year=y; month=m; day=d; } friend void display(const Date &,const Time &); private: int year; int month; int day; }; class Time //时间类 { public: Time(int h,int m,int s) { hour=h; min=m; sec=s; } friend void display(const Date &,const Time &); 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; } 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; }<img src="//img-blog.csdn.net/20150629172423488?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbnVmYW5nZG9uZ2Rl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />学习心得:这道题能够用友元函数来定义display()函数。能够訪问类中的私有成员。这样做比較简单了。继续努力!!