YTUOJ——C++ 習題 輸出日期時間--友元函式
阿新 • • 發佈:2018-11-28
題目描述
設計一個日期類和時間類,編寫display函式用於顯示日期和時間。要求:display函式作為類外的普通函式,分別在Time和Date類中將display宣告為友元函式。在主函式中呼叫display函式,display函式分別引用Time和Date兩個類的物件的私有資料,輸出年、月、日和時、分、秒。
輸入
年、月、日和時、分、秒
輸出
年、月、日和時、分、秒
樣例輸入
2013 12 23
14 23 50
樣例輸出
2013/12/23
14:23:50
提示
主函式已給定如下,提交時不需要包含下述主函式
/* C++程式碼 */
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;
}
答案
#include <iostream> #include <iomanip> using namespace std; class Time; class Date{ public: Date(int, int, int); friend void display(const Date&, const Time&); private: int year; int month; int day; }; class Time{ public: Time(int, int, int); friend void display(const Date&, const Time&); private: int hour; int minute; int second; }; Date::Date(int y, int m, int d){ year = y; month = m; day = d; } Time::Time(int h, int m, int s){ hour = h; minute = m; second = s; } void display(const Date &d, const Time &t){ cout<<d.year<<'/'<<d.month<<'/'<<d.day<<endl; cout<<t.hour<<':'<<t.minute<<':'<<t.second<<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; }