20240417,友元 FRIEND

··················本来要学习的吃瓜吃了一下午

目录

3.1 全局函数做友元

3.2 友元类

3.3 成员函数做友元

三,友元

3.1 全局函数做友元
#include<iostream>
using namespace std;
class Building
{friend void goodGay(Building* building);//好朋友,可以访问buiding的全部成员
public:Building(){m_SittingRoom = "客厅";m_BedRoom = "卧室";}string m_SittingRoom;
private:string m_BedRoom;
};
void goodGay(Building *building)
{cout << "好基友的全局函数  正在访问:" << building->m_SittingRoom << endl;cout << "好基友的全局函数  正在访问:" << building->m_BedRoom << endl;
}
void test01()
{Building bding;goodGay(&bding);
}
int main()
{test01();system("pause");return 0;
}
3.2 友元类
#include<iostream>
#include<string>
using namespace std;
class Building;class Goodgay
{
public:Goodgay();void visit();//参观函数,访问BUIDING中的属性Building * building;
};class Building
{friend Goodgay;//GoodGAY类是BUILDING类的好朋友,可以访问BUILDING的私有成员
public:Building();string m_SittingRoom;
private:string m_BedRoom;
};Building::Building()//类外写成员函数
{m_SittingRoom = "客厅";m_BedRoom = "卧室";
}
Goodgay::Goodgay()
{//创建一个建筑物的对象building = new Building;//堆区创建一个BUILDING的对象//构造函数解决初始化问题,所以?这是初始化?*building指向这个堆区对象
}
void Goodgay::visit()
{cout << "好基友类正在访问:" << building->m_SittingRoom << endl;cout << "好基友类正在访问:" << building->m_BedRoom << endl;
}
void test01()
{Goodgay gg;gg.visit();
}
int main()
{test01();system("pause");return 0;
}
3.3 成员函数做友元
#include<iostream>
#include<string>
using namespace std;
class Building;class Goodgay
{
public:Goodgay();void visit();//可以访问Buiding私有void visit01();//不可以访问Buiding私有Building * building;
};class Building
{//friend void visit();这种写法会将VISIT识别为一个全局函数,而不是Goodgay中的成员函数friend void Goodgay::visit();
public:Building();string m_SittingRoom;
private:string m_BedRoom;
};Building::Building()//类外写成员函数
{m_SittingRoom = "客厅";m_BedRoom = "卧室";
}
Goodgay::Goodgay()
{//创建一个建筑物的对象building = new Building;//堆区创建一个BUILDING的对象,返回指针//构造函数解决初始化问题,所以?这是初始化?building指向这个堆区对象
}
void Goodgay::visit()
{cout << "好基友类visit 正在访问:" << building->m_SittingRoom << endl;cout << "好基友类visit 正在访问:" << building->m_BedRoom << endl;
}
void Goodgay::visit01()
{cout << "好基友类visit01  正在访问:" << building->m_SittingRoom << endl;//cout << "好基友类visit01 正在访问:" << building->m_BedRoom << endl;
}
void test01()
{Goodgay gg;gg.visit();gg.visit01();
}
int main()
{test01();system("pause");return 0;
}

想让谁访问,就让谁FRIEND

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YooAsset快速入门

文章目录 YooAsset快速入门指南&#xff1a;YooAsset学习核心要掌握的要点主要包括以下几个方面&#xff1a;基于YooAsset进行游戏资源管理的应用实例 YooAsset快速入门指南&#xff1a; YooAsset是一款专为游戏开发设计的资产管理和分发系统&#xff0c;它能够帮助开发者高效…

2024阿里云4核8G服务器租用优惠价格700元一年

阿里云4核8G服务器租用优惠价格700元1年&#xff0c;配置为ECS通用算力型u1实例&#xff08;ecs.u1-c1m2.xlarge&#xff09;4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选&#xff0c;CPU采用Intel(R) Xeon(R) Platinum处理器&#xff0c;阿里云优惠 aliyunfuwuqi…

怎样将excel的科学计数法设置为指数形式?

对了&#xff0c;这个问题中所谓的“指数形式”是指数学上书写的右上标的指数格式&#xff0c;能不能通过单元格设置来做这个格式的转换呢&#xff1f; 一、几个尝试 以下&#xff0c;以数字123000为例来说明。 情况1.转换成数学上的书写方式&#xff0c;如下图的样子&#x…

Easy GIS .NET GMap.Net

Easy GIS .NET & GMap.Net .NET 环境下非常简单的GIS地图开发库。 Easy GIS .NET 一个简单的GIS 桌面应用程序&#xff0c;实现了地图瓦片加载、shapefile文件和csv文件加载渲染、地图坐标系统设置及转换等等基本功能&#xff0c;非常简单易用。 Easy GIS .NET is an o…

算法之归并排序(java、python、c++)

一、JAVA 摘录归并详细分析 ✈✈✈✈✈ package algorithm.归并;import java.util.Arrays;public class Fenzhi {public static void main(String[] args) {int [] arr {8,4,1,2,7,6,3,5};mergeSort(arr, 0, arr.length-1, new int[8]);System.out.println(Arrays.toString(a…

基于STM32的日光温室远程监控系统设计

基于STM32的日光温室远程监控系统设计 一、引言 随着现代农业技术的快速发展&#xff0c;日光温室在农业生产中的应用越来越广泛。为了提高温室作物的产量和品质&#xff0c;实现精准的环境控制&#xff0c;本研究设计了一种基于STM32微控制器的日光温室远程监控系统。该系统…

【Godot4自学手册】第三十七节钥匙控制开门

有些日子没有更新了&#xff0c;实在是琐事缠身啊&#xff0c;今天继续开始自学Godot4&#xff0c;继续完善地宫相关功能&#xff0c;在地宫中安装第二道门&#xff0c;只有主人公拿到钥匙才能开启这扇门&#xff0c;所以我们在合适位置放置一个宝箱&#xff0c;主人公开启宝箱…

Tcpdump -r 解析pcap文件

当我们使用命令抓包后&#xff0c;想在命令行直接读取筛选怎么办&#xff1f;-r参数就支持了这个 当你使用 tcpdump 的 -r 选项读取一个之前捕获的数据包文件&#xff0c;并想要筛选指定 IP 地址和端口的包时&#xff0c;你可以在命令中直接加入过滤表达式。这些过滤表达式可以…

2024 年 Web 前端开发趋势

希腊哲学家赫拉克利特认为&#xff0c;变化是生命中唯一不变的东西。这句话适用于我们的个人生活、行业和职业领域。 尤其是前端开发领域&#xff0c;新技术、开发趋势、库和框架不断涌现&#xff0c;变化并不陌生。最近发生的一些事件正在改变开发人员构建网站和 Web 应用的方…

前端学习<四>JavaScript基础——25-this指向

执行期上下文 当函数执行时&#xff08;准确来说&#xff0c;是在函数发生预编译的前一刻&#xff09;&#xff0c;会创建一个执行期上下文的内部对象。一个执行期上下文定义了一个函数执行时的环境。 每调用一次函数&#xff0c;就会创建一个新的上下文对象&#xff0c;他们…

git 分支-变基

在git中&#xff0c;将一个分支的更改集成到另一个分支有两种主要方式&#xff1a;合并&#xff08;merge&#xff09;和变基&#xff08;rebase&#xff09;。在本节中&#xff0c;将学习什么是变基&#xff0c;如何执行变基操作&#xff0c;为什么它是一个非常强大的工具&…

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题9

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题9 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书&#xff0c;赛题&#xff0c;解析等资料&#xff0c;知识点培训服务 添加博主wx&#xff1a;liuliu548…

网工交换基础——MUX VLAN

前言&#xff1a; MUX VLAN&#xff08;Multiplex VLAN&#xff0c;多复用VLAN&#xff09;提供了一种通过VLAN进行网络资源控制的机制。例如&#xff0c;在企业网络中&#xff0c;企业员工和企业客户可以访问企业的服务器。对于企业来说&#xff0c;希望企业内部员工之…

Docker安装(一)

一、安装Docker 服务器系统&#xff1a;centos 7 1.本地有docker的首先卸载本机docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \dock…

算法训练营第43天|LeetCode 1049.最后一块石头的重量Ⅱ 494.目标和 474.一和零

LeetCode 1049.最后一块石头的重量Ⅱ 题目链接&#xff1a; LeetCode 1049.最后一块石头的重量Ⅱ 代码&#xff1a; class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;int size stones.size();for(int i0;i<size;i){sum st…

整合Mybatis,配置数据库

整合mybatis需要加入起步依赖&#xff1a; <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.0</version> </dependency>引入这个依赖就相当…

RHCE在系统设定延迟任务与定时任务

实验定义 延迟任务和定时任务都是常见的任务调度机制&#xff0c;用于在特定时间点或时间间隔触发执行任务。它们在系统开发中经常被使用。 延迟任务 延迟任务是指在一定的时间间隔之后执行的任务。我们可以指定一个时间延迟&#xff0c;然后在延迟时间过后执行相应的任务。…

软企必备CMMI | 哪些企业可以认证?一文讲解CMMI认证条件周期以及好处!

CMMI&#xff0c;即能力成熟度模型集成&#xff0c;是由美国软件工程研究所制定的一种评价软件企业能力成熟度和过程改进的国际标准。随后在世界形成推广的一种软件评估标准&#xff0c;对企业的软件综合管理形成一套体系建立&#xff0c;用于改善软件质量的方法。 CMMI认证旨…

selenum操作cookie进行免登陆【爬虫必修课1】

Selenium 操作 Cookie 进行免登录 使用 Selenium 自动化登录网站是一个常见的需求。但是直接输入用户名和密码登录非常不安全,同时每次登录都需要重复这个操作也很麻烦。一个更好的方式是使用 Cookie 进行免登录。 这篇博客就来介绍如何使用 Selenium 实现 Instagram 的免登录…

计算机知识介绍,本地MAC地址是什么

MAC地址&#xff0c;全称媒体访问控制地址&#xff08;Media Access Control Address&#xff09;&#xff0c;也称为物理地址或硬件地址。它是网络设备&#xff08;例如网卡、无线网卡&#xff09;的唯一标识符。 MAC地址由48位&#xff08;6个字节&#xff09;二进制数组成&…