当前位置: 首页 > news >正文

C++ (友元)(类嵌套时,成员函数以及类声明定义的顺序)小demo

#include<iostream>
using namespace std;
class Building;
//1.因为Goodgay类需要声明Building类变量,
//所以Building类必须Goodgay类之前声明(前向声明);
class GoodGay
{
public:GoodGay();void visit();
private:Building *m_building;
//用指针搁置一下Building类的使用(此时无法使用),等到Building类写好了,
//再用类外成员函数来实例化一个Building类
};
class Building
//2.因为Building的定义中需要将Goodgay类的成员函数声明成友元成员函数,
//所以Building类必须Goodgay类之后定义;
{friend void GoodGay::visit();
public:Building(){m_sitting="客厅";m_bedroom="卧室";}string m_sitting;
private:string m_bedroom;
};
GoodGay::GoodGay()
//3.因为Goodgay中的构造函数需要调用Building的构造函数,
//所以Goodgay类中构造函数的实现必须在Building类的定义之后;
{m_building=new Building;
}
void GoodGay::visit()
{cout<<"visit 函数正在访问:"<<m_building->m_sitting<<endl;cout<<"visit 函数正在访问:"<<m_building->m_bedroom<<endl;
}
void test01()
{GoodGay gg;gg.visit();
}int main()
{test01();
}
#include<iostream>
using namespace std;
class GoodGay
{
public:void visit();
};
class Building
{friend void GoodGay::visit();
public:Building(){m_sitting="客厅";m_bedroom="卧室";}string m_sitting;
private:string m_bedroom;
};
Building B;//如果不在这里实例化Building,下面的B.XXX就会报错
void GoodGay::visit()
{cout<<"visit 函数正在访问:"<<B.m_sitting<<endl;cout<<"visit 函数正在访问:"<<B.m_bedroom<<endl;
}
void test01()
{GoodGay gg;//Building B;gg.visit();
}
int main()
{//Building B;test01();
}

编译只会从上到下遍历代码,不会像人一样跳读代码来找所需要的关键信息,出现一个新东西时要让编译器知道是什么。

相关文章:

C++ (友元)(类嵌套时,成员函数以及类声明定义的顺序)小demo

#include<iostream> using namespace std; class Building; //1.因为Goodgay类需要声明Building类变量&#xff0c; //所以Building类必须Goodgay类之前声明&#xff08;前向声明&#xff09;&#xff1b; class GoodGay { public:GoodGay();void visit(); private:Build…...

前端实习第五周周记

前言 每一天做了什么还是要记录一下&#xff0c;不然过两天后就会发现&#xff0c;慢慢遗忘自己的收获与做过的东西。 这周做的是医学检验系统的样本库部分。由于是公司的代码所以不能交代具体&#xff0c;那么久聊一下每天具体做了些什么以及我的一些收获。 周一 周一上午…...

【图论】Floyd算法

一.简介 Floyd算法&#xff0c;也称为Floyd-Warshall算法&#xff0c;是一种用于解决所有节点对最短路径问题的动态规划算法。它可以在有向图或带权图中找到任意两个节点之间的最短路径。 Floyd算法的基本思想是通过中间节点逐步优化路径长度。它使用一个二维数组来存储任意两…...

ceph数据分布

ceph的存储是无主结构&#xff0c;数据分布依赖client来计算&#xff0c;有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设&#xff1a; 第一&#xff0c;pg的数量稳定&#xff0c;可以认为保持不变&#xff1b; 第二&#xff0c; OSD的数量可以增减&#xff0c;OSD的…...

mysql的两张表left join 进行关联后,索引进行优化案例

一 mysql的案例 1.1 不加索引情况 1.表1没加索引 2.表2没加索引 3.查看索引 1.2 添加索引 1.表1添加索引 2.表2添加索引 3.查看...

2018年3月全国计算机等级考试真题(语言二级C)

2018年3月全国计算机等级考试真题&#xff08;语言二级C&#xff09; 第1题 设有定义&#xff1a;char s[81]&#xff1b;int i0&#xff1b;以下不能将一行带有空格的字符串正确读入的语句或语句组是 A. while((s[i]getchar())!\n);s[i]\0; B. scanf("%s",s); C.…...

java.util.Timer简介以及简单使用示例

一、简介 定时器&#xff08;Timer&#xff09;是一个工具类&#xff0c;用于安排任务&#xff08;java.util.TimerTask&#xff09;在指定时间后执行或以指定的时间间隔重复执行。它可以用于执行定时任务、定时调度和时间延迟等操作。 定时器&#xff08;Timer&#xff09;可以…...

C语言笔试训练【第12天】

文章目录 1、请阅读以下程序&#xff0c;其运行结果是&#xff08; &#xff09;2、假设编译器规定 int 和 short 类型长度分别为32位和16位&#xff0c;若有下列C语言语句&#xff0c;则 y 的机器数为&#xff08; &#xff09;3、下列程序的输出结果是什么&#xff08; &…...

外网连接局域网的几种方式?快解析内网穿透安全便利吗?

外网连接局域网是一项网络连接中的关键技术&#xff0c;它能够让远程用户通过互联网访问内部局域网中的资源和服务。外网连接局域网为企业提供了更大的灵活性和便捷性&#xff0c;但也需要严格的安全措施来防止未经授权的访问。 外网连接局域网的几种方式 在将外网连接到局域…...

基于互斥锁的生产者消费者模型

文章目录 生产者消费者 定义代码实现 / 思路完整代码执行逻辑 / 思路 局部具体分析model.ccfunc&#xff08;消费者线程&#xff09; 执行结果 生产者消费者 定义 生产者消费者模型 是一种常用的 并发编程模型 &#xff0c;用于解决多线程或多进程环境下的协作问题。该模型包含…...

USB隔离器电路分析,SA8338矽塔sytatek电机驱动,源特科技VPS8701,开关电源,电源 大师

一、 USB隔离器电路分析 进行usb隔离可以使用USB隔离模块 ADUM3160 ADUM4160 注意&#xff1a;B0505S 最大带载0.16A&#xff0c;副边需要带载能力需要改变方案 比如移动硬盘至少需要0.5A 用充电宝、18650、设计5V1A输出电源 二、 1A隔离电压方案...

TPC-DS 测试是否支持 Glue Data Catalog?

在上一篇文章《在Hive/Spark上执行TPC-DS基准测试 (PARQUET格式)》中,我们详细介绍了具体的操作方法,当时的集群使用的是Hive Metastore,所有操作均可成功执行。当集群启用 Glue Data Catalog 时,在执行add_constraints.sql时会报错: Optimizing table date_dim (1/24).…...

网络编程(8.14)TCP并发服务器模型

作业&#xff1a; 1. 多线程中的newfd&#xff0c;能否修改成全局&#xff0c;不行&#xff0c;为什么&#xff1f; 2. 多线程中分支线程的newfd能否不另存&#xff0c;直接用指针间接访问主线程中的newfd,不行&#xff0c;为什么&#xff1f; 多线程并发服务器模型原代码&…...

认识负载均衡||WEBSHELL

目录 一、负载均衡 1.nginx负载均衡算法 2.nginx反向代理-负载均衡 二、webshell 1.构造不含数字和字母的webshell 2.如何绕过 一、负载均衡 1.nginx负载均衡算法 &#xff08;1&#xff09;轮询&#xff08;默认&#xff09;每个请求按时间顺序逐一分配到不同的后端服务&…...

Chapter 15: Object-Oriented Programming | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介Object-oriented programmingManaging larger programsGetting startedUsing objectsStarting with programsSubdividing a problemOur first Python objectClasses as typesObject lifecycleMultiple instancesInheritanceSummaryGlossa…...

模板编程-成员特化

成员特化:类模板特化除了可以对整个类进行特化外,可以只针对某部分成员函数进行特化 全类特化和成员特化都属于全局特化 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring>template<typename T> class CMath { public:CMath(const…...

信安通用基础知识

文章目录 密码学经典误区PGP优良保密协议信安经典其它安全手段XSS与CSRF cross site request forgeryCSRF的利用逻辑CSRF示例CSRF防范检查Referer字段添加校验token XSS cross site scripting common weakness enumeration常见密码api误用&#xff08;摘自毕设参考文献&#xf…...

网上购物系统的设计与实现/在线商城/基于spring boot的电商平台/基于Java的商品销售系统

摘 要 本毕业设计的内容是设计并且实现一个基于Springboot的网上购物系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。网上购物系统的功能已基本实现&#xff0c;主要包括用户管理、数码分类管理、数码产品管理、服…...

uniapp项目-配置store文件夹

1.创建store.js 说明&#xff1a;创建一个新的 Vuex Store 实例&#xff0c;配置 Store 中的模块。 import Vue from vue; import Vuex from vuex; // 导入两个 Vuex 模块&#xff1a;moduleCart 和 moduleUser import moduleCart from /store/cart.js; import moduleUser fr…...

element表格多选实现

表格实现多选 实现表格多选很简单&#xff0c;只需要在表格里加上一列即可&#xff0c;加完之后就会在表格里出现一列白色的四方块按钮&#xff0c;可以多选&#xff0c;也可以单选 <el-table-columntype"selection"width"55"align"center"&…...

书成紫微动,律定凤凰驯:海棠山铁哥,用两部作品走完了千年谶语的路

书成紫微动&#xff0c;律定凤凰驯。 ——千年谶语&#xff0c;今终圆满。一、悬在文脉上空的千年谶语“书成紫微动&#xff0c;律定凤凰驯”自诞生之日起&#xff0c;这句庙堂吉颂便高悬于华夏文脉之上&#xff0c;无人可触、无人能落。 文人墨客解其字&#xff0c;玄学爱好者…...

轻量级包管理器LPM指南:从原理到实践,构建高效软件依赖管理方案

1. 项目概述&#xff1a;一个为开发者而生的轻量级包管理器指南如果你是一名开发者&#xff0c;尤其是经常在Linux或macOS环境下工作的开发者&#xff0c;那么“包管理器”这个词对你来说一定不陌生。从系统级的apt、yum、brew&#xff0c;到语言级的npm、pip、cargo&#xff0…...

多模态RAG实战:基于CLIP与向量数据库构建图文检索增强生成系统

1. 项目概述&#xff1a;从“Mureo”看多模态检索增强生成最近在折腾一个挺有意思的开源项目&#xff0c;叫“Mureo”。这个名字乍一看有点抽象&#xff0c;但如果你拆开来看&#xff0c;它其实融合了“Multimodal”&#xff08;多模态&#xff09;和“Neural”&#xff08;神经…...

SpringBoot+Vue民宿管理系统源码+论文

代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 分享万套开题报告任务书答辩PPT模板 作者完整代码目录供你选择&#xff1a; 《SpringBoot网站项目》1800套 《SSM网站项目》1500套 《小程序项目》1600套 《APP项目》1500套 《Python网站项目》…...

数据清洗实战:解锁混乱数据,构建高效企业集成管道

1. 项目概述与核心价值 最近在和一些做企业级应用集成的朋友聊天&#xff0c;发现一个挺有意思的痛点&#xff1a;很多系统在对接时&#xff0c;数据格式五花八门&#xff0c;尤其是那些历史包袱重的老系统&#xff0c;传过来的数据经常是“拧巴”着的。比如&#xff0c;一个本…...

基于Council框架的多智能体协作:构建专家委员会式AI决策系统

1. 项目概述&#xff1a;一个智能化的团队决策引擎最近在开源社区里看到一个挺有意思的项目&#xff0c;叫“Cat-tj/council-tj”。这个名字乍一看有点抽象&#xff0c;但拆开来看&#xff0c;“Council”在英文里是“议会”或“委员会”的意思&#xff0c;而“tj”通常是“Tav…...

轻量化目标检测实战:基于Pytorch的Mobilenet-YOLOv4融合架构设计与性能调优

1. 为什么需要轻量化目标检测模型 在移动端和嵌入式设备上运行目标检测模型时&#xff0c;我们常常面临两个关键挑战&#xff1a;计算资源有限和功耗约束。传统的YOLOv4虽然检测精度高&#xff0c;但其基于CSPDarknet53的主干网络参数量大、计算复杂度高&#xff0c;难以在资源…...

互联网大厂 Java 求职面试:从 Spring Boot 到微服务与云原生的技术探讨

互联网大厂 Java 求职面试&#xff1a;从 Spring Boot 到微服务与云原生的技术探讨 场景介绍&#xff1a;在一家知名互联网大厂的面试现场&#xff0c;面试官是一位严肃的技术专家&#xff0c;而候选人燕双非则是一位幽默风趣的程序员。面试官准备了一系列问题&#xff0c;涵盖…...

现代Web全栈开发实战:基于React、Node.js与Prisma的足球赛事应用架构解析

1. 项目概述与核心价值最近在整理个人技术栈时&#xff0c;翻到了一个之前参与过的很有意思的Web项目——一个基于“NLW”&#xff08;Next Level Week&#xff09;活动构建的足球赛事Web应用。这个项目虽然源于一个线上编程活动&#xff0c;但其架构设计和实现思路&#xff0c…...

Python 内置函数:性能优势与使用技巧

Python 内置函数&#xff1a;性能优势与使用技巧 1. 技术分析 1.1 内置函数优势 Python内置函数由C实现&#xff0c;具有显著性能优势&#xff1a; 内置函数特点C实现: 底层用C编写优化: 经过高度优化内存效率: 内存使用更高效类型优化: 针对特定类型优化1.2 常用内置函数分类 …...