TreeMind树图在线AI思维导图
当前位置:树图思维导图模板资格考试计算机2020年全国计算机二级考试C++复习知识点:友元函数思维导图

2020年全国计算机二级考试C++复习知识点:友元函数思维导图

  收藏
  分享
免费下载
免费使用文件
凉笙微凉 浏览量:02023-04-10 17:25:46
已被使用0次
查看详情2020年全国计算机二级考试C++复习知识点:友元函数思维导图

2020年全国计算机二级考试报名已经开始,准备参加这次考试的小伙伴们接下来就要积极准备2020年的考试了。为此,树图网小编为大家整理了全国计算机二级考试C++复习知识点相关信息,希望能够帮助到大家,了解更多计算机二级考试相关信息敬请关注树图网。

树图思维导图提供 2020年全国计算机二级考试C++复习知识点:友元函数 在线思维导图免费制作,点击“编辑”按钮,可对 2020年全国计算机二级考试C++复习知识点:友元函数  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:c0c421180106e51ec0e7309f1bc1dd3e

思维导图大纲

2020年全国计算机二级考试C++复习知识点:友元函数思维导图模板大纲

2020年全国计算机二级考试C++复习知识点:友元函数

通常,除非真的需要,否则并不需要把整个类都设为另一个类的友元,只需挑出需要访问当前类私有数据成员的成员函数,将它们设置为该类的友元即可。这样的函数称为友元函数。

下面的程序限制了CustomDate类数据成员的访问,Date类中只有需要这些数据的成员函数才有权读写它们。

#include iostream.h

class CustomDate;

class Date

int mo,da,yr;

public:

Date(const CustomDate&);

void display() const {cout< };

class CustomDate

int da,yr;

public:

CustomDate(int d=0,int y=0) { da=d; yr=y; }

friend Date::Date(const CustomDate&);

Date::Date(const CustomDate& cd)

static int dys[] = {31,28,31,30,31,30,31,31,30,31,30,31};

yr=cd.yr;

da=cd.da;

for(mo=0;mo<11;mo++)

if(da>dys[mo]) da-=dys[mo];

else break;

mo++;

int main()

Date dt(CustomDate(123, 89));

dt.display();

return 0;

匿名对象

上面main()函数中Date对象调用CustomDate类的构造函数创建了一个匿名CustomDate对象,然后用该对象创建了一个Date对象。这种用法在C++中是经常出现的。

非类成员的友元函数

有时候友元函数未必是某个类的成员。这样的函数拥有类对象私有数据成员的读写权,但它并不是任何类的成员函数。这个特性在重载运算符时特别有用。

非类成员的友元函数通常被用来做为类之间的纽带。一个函数如果被两个类同时声明为友元,它就可以访问这两个类的私有成员。下面的程序说明了一个可以访问两个类私有数据成员的友元函数是如何将在两个类之间架起桥梁的。

#include iostream.h

class Time;

class Date

int mo,da,yr;

public:

Date(int m,int d,int y) { mo=m; da=d; yr=y;}

friend void display(const Date&, const Time&);

class Time

int hr,min,sec;

public:

Time(int h,int m,int s) { hr=h; min=m; sec=s;}

friend void display(const Date&, const Time&);

void display(const Date& dt, const Time& tm)

cout << dt.mo << '/' << dt.da << '/' << dt.yr;

cout << ' ';

cout << tm.hr << ':' << tm.min << ':' << tm.sec;

int main()

Date dt(2,16,97);

Time tm(10,55,0);

display(dt, tm);

return 0;

相关思维导图模板

新版托福写作知识点地图思维导图

树图思维导图提供 新版托福写作知识点地图 在线思维导图免费制作,点击“编辑”按钮,可对 新版托福写作知识点地图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:17b5a6fdc93f610a448d4bf11f33b1fe

操作系统与计算机学科相关基础学科关系思维导图

树图思维导图提供 操作系统与计算机学科相关基础学科关系 在线思维导图免费制作,点击“编辑”按钮,可对 操作系统与计算机学科相关基础学科关系  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:c72108dcad7d456a3ace0db784f8fb9b