友元的目的是让一个函数或者一个类可以访问另一个类中的私有成员。
友元的关键字为friend

友元的三种实现

  • 全局函数做友元
  • 类做友元
  • 成员函数做友元

1、全局函数做友元

#include <iostream>
#include <string>
using namespace std;class Building{//goodGay全局函数是 Building的好朋友 , 可以访问Building中的私有成员 friend void goodGay(Building *building);
public:string m_SittingRoom; //客厅
private:string m_BedRoom; //卧室
public:Building(){m_SittingRoom = "客厅" ;m_BedRoom = "卧室" ;}
}; //全局函数
void goodGay(Building *building){cout << "好基友全局函数正在访问 :" << building->m_SittingRoom << endl;cout << "好基友全局函数正在访问 :" << building->m_BedRoom << endl;
} void test01(){Building building;goodGay(&building);
}
int main(){test01();return 0;
}

2、类做友元

friend class goodGay;

3、成员函数做友元

friend void goodGay::visit(Building *building);

类和对象—友元—全局函数做友元相关推荐

  1. C++全局函数做友元

    C++全局函数做友元 友元 全局函数做友元 友元 生活中你的家有客厅(Public),有你的卧室(Private) 客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去 但是呢,你也 ...

  2. C++_类和对象_对象特性_友元_全局函数做友元_在类中声明友元权限的全局函数来访问_类中的private权限的变量---C++语言工作笔记052

    然后我们再来看友元,友元,其实就类似于, 比如一个建筑类,这里面有,客厅有卧室, 那么客厅是public的,大家都能访问,但是卧室是private的,外人不能访问 但是,如果是我的朋友,.我想让他访问 ...

  3. 全局与成员函数做友元(学自王桂林)

    c++ 成员函数与全局函数分别做友元: #include<iostream> using namespace std; #include<math.h>/* //全局函数做友元 ...

  4. C++ 成员函数做友元

    C++成员函数做友元 成员函数做友元 案例 成员函数做友元 案例 class Building; class goodGay {public:goodGay();void visit(); //只让v ...

  5. C++_类和对象_对象特性_友元_成员函数做友元---C++语言工作笔记054

    然后我们接着看友元,这次我们来看这个类的成员函数来做友元函数. 还是直接去看例子吧. 写个GoodGay这个类,然后里面有 构造方法,声明一个,Building 这个类的指针,building. 因为 ...

  6. 《C++类和对象中的static、友元以及内存管理 总结》

    学习完前面有关类和对象的基础知识,这里再对其中的某些容易出现的错误及经常性会遇到的问题进行阐述,加深对类和对象的理解是学好C++的基础. 文章目录 1.再次谈及构造函数 2.static成员 3.友元 ...

  7. c++,全局函数做友名

    #include <iostream> #include<stdlib.h> using namespace std; #include <stdio.h> #in ...

  8. 类和对象1-构造函数、析构函数

    文章目录 类和对象 构造函数 构造函数的特性 const修饰类的成员函数 析构函数 类和对象 如果一个类中我们自己什么成员也没有给出,我们称之为空类.但是要注意的是空类并不是真的什么都没有,任何一个类 ...

  9. javascript的Math对象和全局函数

    Math方法 表示数学的运算 静态方法,使用时Math.方法(): 常用: ceil ():向上舍入 floor ():向下舍入 round ():四舍五入 random ():伪随机数(0.1-1. ...

最新文章

  1. CentOS7上安装KVM部署虚拟机
  2. keil 函数 默认 外部 内部 博客_5.9 C++内部函数与外部函数
  3. 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft...
  4. 架构设计(ASP.NET MVC+Knockout+Web API+SignalR)
  5. android 二级列表拖动排序_Excel的数据透视表六种排序方法
  6. boost::contract模块实现命名覆盖的测试程序
  7. RabbitMQ的应用场景以及基本原理简介
  8. php过滤微信特殊字符方案--》2017新版
  9. TelPhoneManager中的常用方法和状态获取
  10. Auto CAD指定线段长度和角度的方法
  11. python短时傅里叶变换_短时傅里叶变换(Short Time Fourier Transform)原理及 Python 实现...
  12. P02014132 魏思奇 对信息论几个问题的一些看法
  13. 大数据岗位更看重学历还是工作经验?
  14. 智慧路灯杆网关的备用网络方案
  15. SpringBoot接口实现视频在线播放
  16. 娱乐至死?不,我偏要活着
  17. 物理系统之碰撞检测——碰撞器
  18. 为Android刷机包签名
  19. 记录:macbook 下剪切快捷键
  20. dto 转换为Do 工具类

热门文章

  1. Linux 文件大小 文件夹大小 磁盘大小
  2. iOS使用AVCaptureSession自定义相机
  3. 2016-05-29 for循环几种应用
  4. sql,EXISTS用法
  5. 打造实用的Fedora 10
  6. UA PHYS515 电磁理论I 麦克斯韦方程组基础3 麦克斯韦方程的势能形式
  7. UA MATH571A R语言回归分析实践 一元回归2 NBA球员的工资
  8. 反汇编基础、OllyDbg简介和界面、基本操作、初级TraceMe练习
  9. Factorized TDNN(因子分解TDNN,TDNN-F)
  10. Core Java(一)