一、友元类
#pragma once
#include"Tv.h"
class Remote
{
public:
void chanDown(Tv& tv);
};
#pragma once
class Tv
{
public:
friend class Remote;
void chandown();
Tv(int maxChannel=10);
private: int channel;
int maxChan;
};
Remote作为Tv的友元类,就需要告知在Tv类的声明中告知Tv,我的朋友Remote能访问我的所有成员方法、变量,
所以要在Tv类里这样声明:friend class Remote;
二:友元方法
class AirConditioner;
class AirRemote {
public:
void set_c(AirConditioner& ac, int c);
};
class AirConditioner {
private:
int c;
friend void AirRemote::set_c(AirConditioner& ac, int c1);
public:
AirConditioner(int c1 = 26);
};
有时后我们只想把私有变量暴露给某个类的某个方法能访问,比如 只让(AirConditioner)空调遥控器的设置温度的方法(set_c) 能访问 空调(AirConditioner)的私有变量 c,
就要向上面这样声明。
先前向声明:AirConditioner,然后声明AirRemote最后在声明AirConditioner。这个顺序是不能变的。
#include"FriendClassMethod.h"
#include<iostream> AirConditioner::AirConditioner(int c1) {
this->c = c1;
}
void AirRemote::set_c(AirConditioner& ac, int c1) {
ac.c = c1;
std::cout << "空调设置为: " << ac.c << "摄氏度\n";
}
三.互为友元
如果两个类某些方法互相都要访问对方成员,这个时候,可以声明为友元函数,不是某个它们之间的某个类的成员函数,就普通的友元函数就可以了。参数记得上带上这两个类的引用就可以了。或者互相声明为对方的友元类。

c++ 友元类 友元类方法的更多相关文章

  1. 不可或缺 Windows Native (20) - C++: 友元函数, 友元类

    [源码下载] 不可或缺 Windows Native (20) - C++: 友元函数, 友元类 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 友元函数 友元类 示例演 ...

  2. C++:友元(非成员友元函数、成员友元函数、友元类)

    3.8  友元:友元函数和友元类 友元函数 :既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,统称为友元函数.友元函数不是当前类的成员函数,而是独立于类的外部函数,但它可以访问该类所有的 ...

  3. 友元(友元函数、友元类和友元成员函数) C++

    有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的.例如被重载的操作符,如输入或输出操作符,经常需要访问类的私有数据成员. 友元(frend)机制允许一个类将 ...

  4. C++中的友元函数和友元类

    C++中的友元函数主要应用于以下场景: 友元函数 第一种场景 代码中有一个全局函数,该函数想要去访问某个类的成员变量(该类的成员变量是private的,且该类并未提供任何获取获取私有成员变量的publ ...

  5. C++友元(友元函数、友元类和友元成员函数)

    友元(友元函数.友元类和友元成员函数) C++ 有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的.例如被重载的操作符,如输入或输出操作符,经常需要访问类的私 ...

  6. C++的友元类和友元函数实例

    #include <math.h> #include<iostream> using namespace std; class Point { public: Point(do ...

  7. C++学习12 友元函数和友元类

    友元函数和友元类在实际开发中较少使用,想快速学习C++的读者可以跳过本节. 一个类中可以有 public.protected.private 三种属性的成员,通过对象可以访问 public 成员,只有 ...

  8. YTU 2619: B 友元类-计算两点间距离

    2619: B 友元类-计算两点间距离 时间限制: 1 Sec  内存限制: 128 MB 提交: 469  解决: 252 题目描述 类Distance定义为类Point的友元类来实现计算两点之间距 ...

  9. c++ 友元类

    一.友元类相关概念 要将私有成员数据或函数暴露给另一个类,必须将后者声明为友元类. 注意三点: (1)友元关系不能传递 (2)友元关系不能继承 (3)友元关系不能互通

  10. C++学习之友元类和友元函数

    C++学习之友元类和友元函数       模板类声明也可以有友元,模板的友元可以分为以下几类:        1.非模板友元:        2.约束模板友元,即就是友元的类型取决于类被实例化的时候的 ...

随机推荐

  1. ContOS7搭建RAID-5磁盘阵列

    RAID5:分布式奇偶校验的独立磁盘结构 RAID5就是raid0和RAID1的一种折中,既提升了磁盘读写能力,又有一定的容错能力,成本也低: 实验开始: 1.挂载四块5G硬盘 2.进行分区:fdis ...

  2. 树模型--ID3算法

    基于信息增益(Information Gain)的ID3算法 ID3算法的核心是在数据集上应用信息增益准则来进行特征选择,以此递归的构建决策树,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类. ...

  3. mysql 必知必会整理—触发器[十五]

    前言 现在很多都是程序用于触发的,而不是触发器了. 正文 需要MySQL 5 对触发器的支持是在MySQL 5中增加的.因此,本章内容适用于MySQL 5或之后的版本. MySQL语句在需要时被执行, ...

  4. Oracle sql 月份的加减以及差值

    Oracle sql 月份的加减以及差值 差值 使用months_between,输出的是两个日期的差值 select months_between(TO_DATE('2022-05-31','yyy ...

  5. Résumé Review 二分方法题解

    一道非常好的数学题,不愧是CF的题,跟某些网站上的水题.恶心题没法比~ 题意 这里就要夸一下某谷了,翻译的很好,不像我,在CF上用deepl翻译,不够清晰(←全是废话) 分析 先不考虑 bi ,考虑转 ...

  6. 成本节省 50%,9人团队使用函数计算开发 wolai 在线文档应用

    简介: 通过使用函数计算,wolai 的前端工程师们就可以把从前到后的一整套开发流程负责起来,我们的研发迭代速度非常快.   ​ 作者| 马锐拉(wolai.com 创始人) 我们的日常工作场景几乎离 ...

  7. [Contract] openzeppelin/cli 开发, 部署, 升级智能合约

    Install Dependency $ npm init $ npm install @openzeppelin/cli Setup project $ npx openzeppelin init ...

  8. WinDbg 设置在加载到某个 DLL 进入断点

    本文记录如何在 WinDbg 里,设置在加载到某个 DLL 时,自动进入断点.通过此方式用来定位是哪个业务模块加载了某个 DLL 模块 在 WinDbg 里面,可以附加到现有进程,也可以启动某个进程. ...

  9. dotnet C# 在 finally 抛异常会发生什么

    如果我在一个方法的 finally 里面抛出异常,而在 try 里面也抛出,那在上层拿到的是什么 如下面代码 private void F1() { try { A(); } catch (Excep ...

  10. petalinux 报错总结

    Failed to menu config project component.... 解决办法 此处是由于Terminal(终端)的界面太窄导致的,把Terminal(终端)界面拉宽即可:重新执行命 ...