为什么要使用友元类

ComputerServer类作为Computer类得友元类, 那么ComputerServer类的所有成员函数, 就可以直接访问对应类的所有数据成员。

使用友元类,和友元函数时,使用friend关键字进行声明即可,与访问权限无关,可以写在private/public/protected任意权限内。

Computer类                          ComputerServer类
public:                             public:
friend class ComputerServer         setUpgrade()setCpuPower()
private:                            setCpuCore
cpu
cpuPower
cpuCore
#include <string>
#include "ComputerServer.h"using namespace std;class Computer{
public:Computer();//友元类, 此时都在ComputerServer类里//都可以访问Computer的所有数据friend class ComputerServer;void description();
private:string cpu; //cpu芯片int cpuPower; //cpu性能int cpuCore; //cpu内核
}

ComputerServer是Computer类的友元类, 都可以访问Computer的所有数据。

void ComputerServer::setUpgrade(Computer *computer)
{computer->cpu = 'i9';
}
class FaceAlignment: public FaceModule
{
public:FaceAlignment(){}~FaceAlignment(){}friend class FaceInst;
}
FaceInst是FaceAlignment的友元类。

C++如何使用友元类相关推荐

  1. C++ 笔记(30)— 友元函数与友元类

    我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...

  2. C++ primer 第七章之 友元函数与友元类

    1.为什么需要友元函数?  类具有封装和信息隐藏的特性: 只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的 ; 非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公 ...

  3. 友元类实例:日期类 学生类

    1.定义Date类 : Date类中定义了三个私有数据成员(year ,month,day) 2.定义Student类: 在Student类中定义了两个私有数据成员(name[] ,birthday) ...

  4. C++中友元类使用场合

    在C++中我们可以將函数定义成类的友元函数,这样在函数中就可以访问类的私有成员.与函数相同,类也可以作为另一个类的友元类,在友元类中可以访问另外一个类的所有成员. 声明友元类的方法很简单,只需在类中写 ...

  5. C++中友元函数和友元类

    友元函数 友元函数是可以直接访问类的私有成员的非成员函数.它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下: frien ...

  6. C++友元函数和友元类(C++ friend)详解

    在看VISP视觉库的时候遇到友元函数: Friends void swap (vpDetectorAprilTag &o1, vpDetectorAprilTag &o2) 在定义一个 ...

  7. 第七周项目二-友元类

     /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年4月13日*版 本 号: ...

  8. c++友元函数与友元类

    友元函数和友元类的需要: 类具有封装和信息隐藏的特性.只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的.非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这 ...

  9. java中友元类_友元类成员的依赖关系|循环依赖

    定义一个CBottle类,另一个类CCarton的某个成员对CBottle进行操作,因此在CBottle类中赋予CCarton成员的友元权利.我们很容易写出如下代码: //CBottle类的头文件 b ...

  10. 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )

    文章目录 成员函数 常量函数 友元函数 new 创建对象 友元类 单例类 成员函数 此处继续上一篇博客继续向后讲解C++面向对象 类成员方法 , 除了定义构造方法与析构方法之外 , 还可以定义普通的成 ...

最新文章

  1. 【从零开始的ROS四轴机械臂控制】(六)- 逻辑控制节点
  2. 我在兰亭这三年之自动化框架升级
  3. 计算机程序水仙花数,水仙花数
  4. 供配电负荷计算方法详解
  5. qt槽函数如何传递多个参数_Qt:在发出信号后尝试将多个引用传递给槽函数
  6. 验证redis的主从复制
  7. 四川大学计算机科学与技术专业分数线,2015年四川大学计算机科学与技术硕士考研复试分数线是290分...
  8. jenkins执行bat失败_关于批处理文件:即使在BAT脚本中成功执行了ROBOCOPY命令,JENKINS作业也会失败...
  9. 分久必合的Lindorm传奇
  10. Theano 中文文档 0.9 - 6. 更新Theano
  11. 腾讯自动驾驶新动作!与现代合作开发无人车系统
  12. 苹果Mac3D建模软件SketchUp Pro很专业
  13. 计算机基础注电考试用书,注册电气工程师考试试题:计算机基础知识
  14. win10系统bat隐藏运行的cmd窗口
  15. 感觉中国程序员前景一片灰暗,是这样吗?
  16. 教妹学 Java:晦涩难懂的泛型
  17. 一文解读时间序列基本概念
  18. HTTPS双向认证(Mutual TLS authentication)
  19. SML-Abridgelab
  20. 【进制转换】负进制转换 多进制转换

热门文章

  1. 江苏计算机三级偏软全程,数据库系统-江苏省计算机等级考试-三级偏软
  2. 疑难杂症——Ubantu系统如何切换中文
  3. Struts2 xml表单验证
  4. 苹果传pc用文件功能连接服务器url无效,iOS 9的 Universal Links 通用链接使用介绍
  5. pytorch reshape view性能对比 (以及einsum, matmul)
  6. 华为手环8相册表盘使用指南
  7. 模糊推理学习笔记及例题
  8. 正则表达式字符数字匹配
  9. 添加或更改照片图库- Website Builder Online Store 无代码搭建在线商城平台
  10. 1.animation 判断动画结束,结束后执行另一事件;2.用css3写竖条纹背景