友元类

来源:互联网 发布:中信出版社 知乎 编辑:程序博客网 时间:2024/05/21 05:40
/*  1. *Copyright   (c)  2016,烟台大学计算机学院     2.     3. *All rights reserved.     4.     5. *文件名称:test.cpp     6.     7. *作者: 武聪     8.     9. *完成日期:2016年5月15日     10.     11. *版本号:v1.0     12.     13. *     14.     15. *问题描述: 16. *输入描述:   17. *程序输出:   18. */#include <iostream>using namespace std;class Date;class Time{public:    Time(int,int,int);    void add_a_second(Date &);    void display(Date &);private:    int hour;    int minute;    int sec;};class Date{public:    Date(int,int,int);    friend class Time;  private:    int month;    int day;    int year;}; int days(int m, int y);  int main( ){    Time t1(23,59,32);    Date d1(2,28,2013);    for(int i=0; i<=100; i++)    {        t1.add_a_second(d1);        t1.display(d1);    }    return 0;}Time::Time(int h,int m,int s ){    hour=h;    minute=m;    sec=s;} Date::Date(int m,int d,int y)  {      month=m;      day=d;      year=y;  } void Time ::add_a_second(Date &d) {     if(++sec>=60) ++minute,sec-=60;    if(minute>=60) ++hour,minute-=60;    if(hour>=24) ++d.day,hour-=24;    if(d.day>days(d.month,d.year)) ++d.month,d.day=1;    if(d.month>12) ++d.year,d.month-=12; }  void Time::display(Date &d)  {      cout<<d.year<<"年"<<d.month<<"月"<<d.day<<"日";    cout<<hour<<":"<<minute<<":"<<sec<<endl;  }  int days(int m, int y)  {      int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31};      if((y%4==0&&y%100!=0)||(y%400==0))        d[2]=29;        return d[m];  }

运行结果:

知识点总结:

友元函数的使用

学习心得:

好好努力

 

0 0
原创粉丝点击