seo网站编辑是做什么的,在线作图网站,著名网站建设,简单的网站建设合同书以下内容源于慕课网的学习整理#xff0c;如有侵权#xff0c;请告知删除。 一、友元函数
1、分类
全局函数——》友元全局函数
成员函数——》友元成员函数 2、关键字friend 友元全局函数
如下#xff0c;利用friend修饰的函数#xff0c;其参数应该是本类的引用或者指…以下内容源于慕课网的学习整理如有侵权请告知删除。 一、友元函数
1、分类
全局函数——》友元全局函数
成员函数——》友元成员函数 2、关键字friend 友元全局函数
如下利用friend修饰的函数其参数应该是本类的引用或者指针 这里的printXY函数写在类的外面即全局函数。 但是可以访问类的私有成员因为用friend在类中声明了是友元函数。 友元成员函数 此时的printXY函数位于类Circle中。此时的printXY可以访问Coordinate中的私有数据成员。 二、友元类 概念如下此时可以在友元类Circle中定义一个Coordinate类然后访问Coordinate的数据成员。 三、关于友元的注意事项
1、友元关系不可传递
2、友元关系的单向性
3、友元声明的形式及数量不受限制。友元声明在类的哪里都可以
4、友元只是封装的补充是迫不得已的使用方法可以通过设计的巧妙性避免使用友元。它破坏了数据的封装。 四、代码示例 #include iostream
using namespace std;
class Watch;/*** 定义Time类* 数据成员m_iHour m_iMinutem_iSecond * 成员函数构造函数* 友元类Watch*/
class Time
{// 友元类friend class Watch;
public:Time(int hour, int min, int sec){m_iHour hour;m_iMinute min;m_iSecond sec;}
public:int m_iHour;int m_iMinute;int m_iSecond;
};/*** 定义Watch类* 数据成员m_tTime* 成员函数构造函数* display用于显示时间*/
class Watch
{
public:Watch(Time temp):m_tTime(t){}void display(){cout m_tTime.m_iHour endl;cout m_tTime.m_iMinute endl;cout m_tTime.m_iSecond endl;}
public:Time m_tTime;
};int main()
{Time t(6, 30, 20);Watch w(t);w.display();return 0;
}