项目2——友元类
来源:互联网 发布:迈克尔芬利数据 编辑:程序博客网 时间:2024/06/07 19:43
问题及代码:
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:李一波 * 完成日期:2016年4月17日 * 版本号:vc++6.0 * * 问题描述: Date Time类 * 输入描述: * 程序输出: 输出结果 */#include<iostream>using namespace std;class Date; //对Date类的提前引用声明class Time{public: Time(int,int,int); void add_a_second(Date &); //增加1秒,1秒后可能会到了下一天,乃到下一月、下一年 void display(Date &); //显示时间,格式:月/日/年 时:分:秒private: int hour; int minute; int sec;};class Date{public: Date(int,int,int); friend class Time; //Time为Date的友元类,那么Time类中的成员函数可以访问Date中的私有和保护数据private: int month; int day; int year;};Time::Time(int a,int b,int c){ hour=a; minute=b; sec=c;}int days(int m, int y) //days函数返回y年m月的天数{ 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];}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 &x){ cout<<x.month<<"/"<<x.day<<"/"<<x.year<<" "<<hour<<":"<<minute<<":"<<sec<<endl;}Date::Date(int x,int y,int z){ day=x; month=y; year=z;}int main( ){ Time t1(23,59,32); Date d1(12,31,2013); //测试时,再试试Date d1(2,28,2013)会如何 for(int i=0; i<=100; i++) { t1.add_a_second(d1); t1.display(d1); } return 0;}
运行结果:
0 0
- 项目2——友元类
- 第七周上机实践项目——项目2-友元类
- 第七周项目2——友元类
- 经历项目的磨难,渴望快乐的项目—H项目总结2,项目调研
- 第七周项目2—友元类
- 第七周项目2—友元类
- 项目1——2
- 第15周实践项目项目2——洗牌
- 第四周—项目2
- 感受项目的磨难,渴望快乐的项目—H项目总结4,设计编码2
- 项目总结——项目管理方面
- 第一个项目——项目前
- 项目总结——项目方法
- 软件项目管理——项目三角形
- 软件工程-项目总结——项目架构
- 第七周项目三——友元类
- 七——项目三(友元类)
- 第五周项目5——友元类
- UVALive 6838 Flipping Parentheses(线段树、单点更新、区间查询)
- css浮动模型初理解
- ScrollView嵌套ListView
- View的事件体系---V3.3 弹性滑动
- 指令与动作
- 项目2——友元类
- HDOJ 2196 Computer
- css层模型初理解
- 自动加载
- 一张照片让你的安卓手机崩溃
- springmvc对静态资源的访问
- 学习小结(上册第四章)
- 【codevs2800】送外卖,状态压缩DP练习
- 腾讯产品三大核心方法论