第七周项目4-友元类
2014-04-07 21:29
211 查看
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:田成琳 *完成日期:2014 年 4 月 7 日 *版本号: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; }; 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; } //下面定义两个类中的成员函数,要求不得再增加成员函数 //注意体会在Time的成员函数中可以调用Date类的私有数据成员 Time::Time(int h,int m,int s) { hour=h; minute=m; sec=s; } void Time::add_a_second(Date & d) { sec++; if(sec>59) { sec-=60; minute++; if(minute>59) { minute-=60; hour++; if(hour>=24) { hour-=24; d.day++; if(d.day>=31&&(d.month==1||d.month==3||d.month==5||d.month==7||d.month==8||d.month==10||d.month==12)) { d.day-=30; d.month++; if(d.month>=12) { d.month-=11; d.year++; } } else if(d.day>=30&&(d.month==4||d.month==6||d.month==9||d.month==11)) { d.day-=29; d.month++; } else if(d.day>=28&&(d.month==2&&!((d.year%4==0&&d.year%100!=0)||d.year%400==0))) { d.day-=27; d.month++; } else if(d.day>=29&&(d.month==2&&((d.year%4==0&&d.year%100!=0)||d.year%400==0))) { d.day-=28; d.month++; } } } } } void Time::display(Date & d) { cout<<d.year<<"/"<<d.month<<"/"<<d.day<<" "<<hour<<":"<<minute<<":"<<sec<<endl; } Date::Date(int y,int m,int d) { year=y; month=m; day=d; }
运行结果:
心得体会:
相关文章推荐
- c++友元函数与友元类的深入解析
- C++之友元:友元函数和友元类详解
- 【C++学习笔记】友元函数和友元类
- C++ - 类模板(class template)友元(friend) 的 全部六种形式 及 代码
- 【C++基础之十】友元函数和友元类
- 友元函数和友元类
- C++ 友元类
- 友元函数和友元类
- c++ 友元
- 友元类
- 多态&指针访问虚函数&不能被继承的类&快速排序&N皇后问题&插入排序&堆排序&merge归并排序&栈上生成对象&两个栈实现一个队列
- 友元函数友元类.
- C++ 友元
- c++ 友元类
- 什么场景下会用到友元函数?
- C++学习-友元
- “友元类”
- C++学习:友元函数与友元类
- 对c++友元函数和友元类的理解
- C++之模板(友元函数+友元类+静态Static)