友元类
来源:互联网 发布:中信出版社 知乎 编辑:程序博客网 时间: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
- 友元类
- 友元类
- 友元类
- 友元类
- 友元类
- 友元类
- 友元类
- 友元类
- 友元类...
- 友元类
- 友元类
- 友元类。。。。
- 友元类
- 友元类
- 友元类
- 友元类
- 友元类
- 友元类
- C语言宏条件编译详解
- 二叉搜索树(递归)
- Hibernate 调用mysql
- 对objc_msgSend的分析
- JSTL 及 tablibs 的简单介绍和配置方法
- 友元类
- 第一章 JAVA入门(什么是android)
- SpringMVC拦截器实现登录认证
- [LeetCode] Integer Break
- 二分查找/折中查找
- 第一章 JAVA入门(Android 版本历史)
- C# 的TCPClient异步连接与异步读数据
- FIND_IN_SET和GROUP_CONCAT的用法
- SRE读书笔记——第一章