类的流插入与流提取

1.自定义类型不能直接使用流插入与流提取

为什么内置类型可以直接使用流插入与流提取?

其实本质上是人家已经写好了相关的函数,内置类型可以直接调用cout与cin

对于自定义类型,我们需要自己写相关的函数。

2.解决方法

2.1自己在类里面写一个流插入

ostream 是 C++ 标准库中的一个类,它代表了输出流(output stream)

但是还是不行

函数的参数顺序

为什么呢?因为参数的顺序匹配不上,在函数里面的参数为(&d1,ostream&out),

我们下面实际调用的时候参数为(ostream&out,&d1)

但是如果想改变类里面的函数参数的顺序,是不行的,因为this是隐藏的,我们也不能修改,this指针始终是类的方法里面的第一个参数

2.2类的方法写在全局中 

但是这个时候依旧不行,要面临去访问私有成员的情况

2.3友元

这里可以用友元来解决这个问题,在我们的类里面去声明这个函数,并用上friend这个关键字。

大概意思就是这个函数是我的朋友,可以让他来访问类里面的私有成员变量。

这样全局函数就可以访问类里面的私有成员了。

2.4还有一个问题

两个类不能连续使用流插入,因为cout<<d1的返回值是void,

修改返回值,所以修改成下面这样就可以了

同理可得,流提取

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

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

相关文章

微信小程序 【关键部分】

1. 动机 最近在开发小程序&#xff0c;小程序既需兼顾针对新用户的内容预览&#xff0c;又要为注册用户提供服务&#xff0c;简单梳理下&#xff0c;基本需求如下&#xff1a; 小程序共三个tab页&#xff0c;所有用户都可以浏览首页内容&#xff0c;了解我们可以提供的优质服…

Microsoft Remote Desktop Beta for Mac:远程办公桌面连接工具

Microsoft Remote Desktop Beta for Mac不仅是一款远程桌面连接工具&#xff0c;更是开启远程办公新篇章的利器。 它让Mac用户能够轻松访问和操作远程Windows计算机&#xff0c;实现跨平台办公的无缝衔接。无论是在家中、咖啡店还是旅途中&#xff0c;只要有网络连接&#xff0…

鸿蒙UI复用

鸿蒙UI复用 简介BuilderBuilder的使用方式一Builder的使用方式二Builder的使用方式三 Component使用Component复用UI 简介 在页面开发过程中&#xff0c;会遇到有UI相似的结构&#xff0c;如果每个UI都单独声明一份&#xff0c;会产生大量冗余代码&#xff0c;不利于阅读。遇到…

Python头歌合集(题集附解)

目录 一、Python初识-基本语法 第1关&#xff1a;Hello Python! 第2关&#xff1a;我想看世界 第3关&#xff1a;学好Python 第4关&#xff1a;根据圆的半径计算周长和面积 第5关&#xff1a;货币转换 二、turtle简单绘图 第1关&#xff1a;英寸与厘米转换 第2关&#xff1…

鸿蒙应用开发系列 篇二:鸿蒙系统开发工具与环境

文章目录 系列文章硬件与软件需求DevEco Studio扩展工具与框架开发资源系列文章 鸿蒙应用开发系列 篇一:鸿蒙系统概述 鸿蒙应用开发系列 篇二:鸿蒙系统开发工具与环境 (系列计划预告) 鸿蒙系统UI/UX设计 鸿蒙系统应用开发基础 鸿蒙系统高级开发技术 鸿蒙系统特色功能开发 …

线程池和CountDownLatch搭配使用

一&#xff0c;CountDownLatch CountDownLatch是Java并发编程中用于线程间协调的一个同步辅助类。它通过一个初始计数值来控制线程的等待&#xff0c;这个计数值在其他线程执行特定任务时递减。 初始化&#xff1a;创建CountDownLatch实例时&#xff0c;你需要指定一个整数值&…

vue-cli+vue3+vite+ts 搭建uniapp项目全过程(一)

unapp官方提供了cli 脚手架创建 uni-app 项目的文档 Vue3/Vite版要求 node 版本 18、20使用Vue3/Vite版创建不会提示选择模板&#xff0c;目前只支持创建默认模板 本文以vue3vitets为例 1、初始化项目 npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project 执行完生成…

037——加入Kconfig机制

目录 一、什么是Kconfig 1.1 由来 1.2 功能 二、 Kconfig的基本语法 2.1 Kconfig 构建项目解析 2.2 怎么调用子makefile做menuconfig 方法一&#xff1a;使用make命令直接调用子目录 方法二&#xff1a;使用变量来指定子目录 方法三&#xff1a;使用include指令包含子…

在RStudio上用Git功能管理Github上的项目

在本教程中&#xff0c;你将学习以下内容&#xff1a; 1. 创建一个新的仓库。 2. 使用 Git 和 RStudio 在本地机器上使用你的仓库。 3. 使用 GitHub.com 网站或 GitHub Enterprise 完成 GitHub 工作流程。 4. 使用 GitHub Pages 发布和共享你的 R Markdown 文档。 先决条件&a…

Java openrasp记录-02

主要分析以下四个部分&#xff1a; 1.openrasp agent 这里主要进行插桩的定义&#xff0c;其pom.xml中定义了能够当类重新load时重定义以及重新转换 这里定义了两种插桩方式对应之前安装时的独立web的jar的attach或者修改启动脚本添加rasp的jar的方式 其中init操作则需要将ras…

大数据技术主要学什么,有哪些课程

大数据技术是指在海量数据的环境下&#xff0c;采集、存储、处理、分析和管理数据的一系列技术与方法。随着互联网、物联网以及各种智能设备的普及&#xff0c;数据量呈爆炸性增长&#xff0c;传统数据处理手段已难以应对&#xff0c;因此大数据技术应运而生&#xff0c;旨在从…

加州大学欧文分校英语中级语法专项课程04:Intermediate Grammar Project学习笔记(完结)

Intermediate Grammar Project Course Certificate Specialization Certificate Specialization Intro Course Intro 本文是学习 Coursera: Intermediate Grammar Project 这门课的学习笔记。 文章目录 Intermediate Grammar ProjectWeek 01: IntroductionCapstone Introducti…

论文笔记:DeepMove: Predicting Human Mobility with Attentional Recurrent Networks

WWW 2018 1 Intro 根据对百万级用户群的研究&#xff0c;93%的人类移动是可预测的。 早期的mobility预测方法大多基于模式的。 首先从轨迹中发现预定义的移动模式(顺序模式、周期模式)然后基于这些提取的模式预测未来位置。最近的发展转向基于模型的方法进行流动性预测。 利用…

力扣:62. 不同路径

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

16、Flink 的广播状态 (Broadcast State) 示例

1、Broadcast State 案例 规则流&#xff1a;1,a,b [规则名1 规则为 a 或 b] 图形流&#xff1a;green,a [绿色 a] 问题&#xff1a;如果规则流先于数据流则匹配不上>此时缓冲数据流中的数据【如果规则流为null】 import org.apache.flink.api.common.functions.MapFunct…

redis-内存回收机制

在 Redis 的源码中&#xff0c;redisDb 结构体用于表示一个 Redis 数据库实例。结构体大致如下 typedef struct redisDb {dict *dict; // 存储键值对的字典dict *expires; // 存储键的过期时间的字典dict *blocking_keys; // 阻塞键的字典…

子比主题小黑屋列表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤1.引入库前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文…

五一假期后,必读的10篇大模型论文

1.同时预测多个 token&#xff1a;更好更快的大型语言模型 目前&#xff0c;GPT 和 Llama 等大型语言模型&#xff08;LLMs&#xff09;都是通过下一个 token 预测损失来训练的。 在这项工作中&#xff0c;来自 Meta FAIR 的研究团队认为&#xff0c;训练语言模型同时预测多个…

用 Go map 要注意这个细节,避免依赖他!

有的小伙伴没留意过 Go map 输出、遍历顺序&#xff0c;以为它是稳定的有序的&#xff0c;会在业务程序中直接依赖这个结果集顺序&#xff0c;结果栽了个大跟头&#xff0c;吃了线上 BUG。 有的小伙伴知道是无序的&#xff0c;但却不知道为什么,有的却理解错误&#xff1f; 今…

PADS 规则设置-导线不跟随器件-导线允许回路

1、PADS Layout中设置拖动器件时导线不跟着移动 2、PADS Router中设置走线允许回路