赞
踩
- /*
- * 程序的版权和版本声明部分
- * Copyright (c)2012, 烟台大学计算机学院学生
- * All rightsreserved.
- * 文件名称: object.cpp
- * 作者:王飞
- * 完成日期: 2013年4月16 日
- * 版本号: v1.0
- * 输入描述:无
- * 问题描述:加深友员类的理解
- * 程序输出:略
- */
-
- #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的友元类
- private:
- int month;
- int day;
- int year;
- };
-
-
- 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>30) //每个月按照30天
- {
- ++d.month,d.day-=30;
- }
-
- if(d.month>12)
- {
- ++d.year,d.month-=12;
- }
-
- }
- void Time::display(Date &t)
- {
- cout<<t.year<<"/"<<t.month<<"/"<<t.day<<'\t';
- cout<<hour<<":"<<minute<<":"<<sec<<endl;
- }
-
- int main( )
- {
- Time t1(23,59,32);
- Date d1(12,25,2012);
- for(int i=0; i<=80; i++)
- {
- t1.add_a_second(d1);
- t1.display(d1);
- }
- return 0;
- }
输出结果:
心得体会:
友员类的应用,但是方式并不好,破坏了类的信息隐藏。但是这个语法要掌握!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。