第七周上机实践项目-项目二-友元类
2016-04-11 20:27
344 查看
/* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:刘涛 *完成日期:2016年4月11 *版 本 号:v1.0 * *问题描述:友元类 */ #include<iostream> using namespace std; class Date; //对Date类的提前引用声明 class Time { public: Time(int h,int m,int s):hour(h),minute(m),sec(s){} void add_a_second(Date &); //增加1秒,1秒后可能会到了下一天,乃到下一月、下一年 void display(Date &); //显示时间,格式:月/日/年 时:分:秒 private: int hour; int minute; int sec; }; class Date { public: Date(int mon,int da,int ye):month(mon),day(da),year(ye){} friend class Time; //Time为Date的友元类 private: int month; int day; int year; }; void Time::add_a_second(Date &a) { sec+=1; if(sec>60) { minute+=sec/60; sec=sec-60; if(minute>60) { hour+=minute/60; minute=minute-60; if(hour>=24) { hour=hour-24; a.day++; if(a.day>=31) { a.month++; a.day=1; if(a.month>=12) { a.month=1; a.year++; } } } } } } void Time::display(Date &b) { cout<<b.year<<"."<<b.month<<"."<<b.day<<" "<<hour<<":"<<minute<<":"<<sec<<endl; } int main( ) { Time t1(23,59,32); Date d1(12,31,2013); for(int i=0; i<=100; i++) { t1.add_a_second(d1); t1.display(d1); } return 0; }
运行及结果:
<img src="http://img.blog.csdn.net/20160411204300654?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
知识点总结:友元类的应用,以及年月日和小时分钟秒的控制
学习心得:<pre name="code" class="cpp">.两个类之间是单独的友元关系,不能互相,再此题中,在Date类中声明Time类,只能在Time类中用Date类的数据成员。
相关文章推荐
- YYImage详解
- springmvc 相应静态资源,view-controler-path
- Hibernate ORM映射多对一
- 高速充电技术介绍
- OneZero第四周——预完成功能点统计
- QT中文乱码解决方法
- Problem H: C语言实验——整数位
- C语言循环的实现
- Oracle数据库--实用操作(4)游标
- Java网络连接-URLConnection类的使用
- 简易四则运算计算器(C51单片机实现)
- 干货--Redis+Spring+Struts2实现网站计算器应用项目案例
- c++多继承与虚基类
- 堆与堆排序与topK问题
- Ubuntu服务器-SVN
- 终于开CSDN了。。。
- spark中的task 分割
- ABP源码分析二十八:ABP.MemoryDB
- 状态机
- 简单springmvc搭建流程