首页 > 其他分享 >类与对象 —— 友元

类与对象 —— 友元

时间:2022-08-30 22:57:29浏览次数:76  
标签:友元 Building building 对象 私有 goodgay 函数

友元

生活中你的家有客厅(Public),有你的卧室(Private)

客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去

但是呢,你也可以允许你的好闺蜜好基友进去。

在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术

友元的目的就是让一个函数或者类 访问另一个类中私有成员

友元的关键字为 ==friend==

友元的三种实现

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

4.4.1 全局函数做友元

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 class building
 5 {
 6     //goodgay全局函数是building的好朋友,可以访问Building 中的私有成员
 7     friend void goodgay(building* Building);
 8 public:
 9      building()
10     {
11         m_sittingroom = "客厅";
12         m_badroom = "卧室";
13     }
14 public:
15     string m_sittingroom;//客厅
16 private:
17     string m_badroom;
18 };
19 //全局函数
20 void goodgay(building* Building)
21 {
22     cout << "好基友全局函数 正在访问 :" << Building->m_sittingroom << endl ;
23     cout << "好基友的函数 正在访问 :" << Building->m_badroom;
24 }
25 int main()
26 {
27     building Building;
28     goodgay(&Building);
29 }

 

标签:友元,Building,building,对象,私有,goodgay,函数
From: https://www.cnblogs.com/zaiyewujiang/p/16641255.html

相关文章

  • new的工作原理、new和字面量创建对象的区别
    new的工作原理:1.创建一个空对象,构造函数中的this会指向这个对象2.这个新对象会被链接到原型3.执行构造函数方法,其属性和方法都会被添加到this引用的对象中4.如果构造函......
  • cpp类对象作函数参数
    cpp类对象作函数参数参考:c++PrimePlus(第六版)第12章传址or传值函数传参有几种:指针、引用、值;前两个都是传入地址,最后一个传入对象的值由于指针操作数据的灵活性高,且......
  • Python面向对象模板
    内容概要面向对象面向对象前戏对象与类的创建对象独有的数据对象独有的功能动静态方法面向对象三大特性之继承面向对象三大特性之封装property伪装属性面向对象三大......
  • 对象数组HolidayTravel
    根据题目要求编写模拟的程序(1)五一小假期,许多人选择外出旅游。每位乘客(Passenger)最多可以携带3件行李(Luggage)。并且乘客可以选择个人自由行;或者参加旅行社(TravelAgency......
  • 父类指针指向子类对象,子类指针不能指向父类对象
    父类指针指向子类对象,子类指针不能指向父类对象  总结:<1>.当基类指针指向派生类的时候,只能操作派生类从基类中继承过来的数据.(重写虚函数得到的函数也算继承过来的......
  • Python自学教程12-类和对象怎么用
    Python是一门现代化的编程语言,也是一门面向对象的编程语言。现代编程语言几乎都支持面向对象编程,面向对象编程是最有效的软件编写方法之一。你可以用类和对象来表示现实当......
  • Linq:Distinct()不能排除重复对象的解决方案
    1.数据准备:假设有几个重复数据,如下,(正常使用Distinct()方法,我们想要排除掉重复的对象)usingSystem.Collections.Generic;namespaceLINQTutorial{publicclassS......
  • Python中函数或者类对象带()与不带()的区别——闭包和函数返回时的常见现象
    Python中函数或者类对象带()与不带()的区别-----闭包和函数返回时的常见现象-函数不带括号时,调用的是这个函数本身,是整个函数体,是一个函数对象,不需等该函数执行完成,返回一个......
  • 在elasticsearch中对象object嵌套的使用
    1.添加映射PUT/object-test/{"mappings":{"properties":{"deviceNo":{"type":"keyword"},"......
  • 序列化器:序列化一个模型对象和多个模型对象
    1.序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串2.反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型......