问题及代码:
/*烟台大学计算机与控制工程学院。
文件名称:友元函数用例
作者:马艳艳
完成日期:2016年4月11日
问题描述:借用一个成员函数还有一个友元函数两者形成对比,输出时间值;
输入描述:输入三个数值代表时间的时分秒
输出描述:有输入的时间值加上符号构成的时间
ps:本程序主要是老师为了让我们深刻理解友元函数概念及应用。
*/
#include <iostream>
using namespace std;
class Time
{
public:
Time (int h,int m,int s):hour(h),minute(m),sec(s){}
void display1();
friend void display2(Time &);
int gethour()
{
return hour;
}
int getminute()
{
return minute;
}
int getsec()
{
return sec;
}
private:
int hour;
int minute;
int sec;
};
void Time::display1()
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
void display2(Time &t)
{
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
int main()
{
Time t1(12,10,10);
t1.display1();
display2(t1);
return 0;
}
运行结果:
知识点总结:在写友元函数时,在void display2(Time &t);这个地方该开始是不懂什么意思的,然后第一次见是在贺老师写带武器的角色类,提供了很好的思路,一个引用,即相当于定义,又可以加快运行效率。还主有函数声明变量初始化的时候Time t1(12,10,10);的初始化感觉最近才领悟。慢慢来吧。
学习心得:
学习要循序渐进,友元函数其实还是很好理解的,关键是学会引用的概念感觉很好。