流运算符重载中的返回类型

2023-11-27

程序的目的是获取输入,将这些值分配给类的成员并显示输出,输入和输出操作是通过重载流运算符来完成的。

#include <iostream>
using namespace std;
class MyClass {
int x, y;
public:
  MyClass(int i, int j) { 
     x = i; 
     y = j; 
  }

  friend ostream& operator<<(ostream &stream, MyClass ob);
  friend istream& operator>>(istream &stream, MyClass &ob);
 // friend void operator<<(ostream &stream, MyClass ob);
 // friend void operator>>(istream &stream, MyClass &ob);
};

ostream& operator<<(ostream &stream, MyClass ob)
{
  stream << ob.x << ' ' << ob.y << '\n';

  return stream;
}

istream& operator>>(istream &stream, MyClass &ob)
{
  stream >> ob.x >> ob.y;

   return stream;
}

int main()
{
MyClass abt(30,23);
cin>>abt;
cout<<abt;
return 0;
}

在示例中,如果从输入流“cin”获取数据并且在函数内部分配值,为什么要返回“istream”。我已经看到所有教程都在运算符重载函数中返回流。返回值的目的是什么?


在示例中,如果数据是从输入流中获取的cin并且值是在函数内部分配的,为什么应该istream被退回来?

这样做是为了允许“链接”。

该运算符从两侧获取两个参数>>。流来自左侧,变量来自右侧。当你这样做时

cin >> x >> y;

第一个表达式cin >> x位于第二个表达式的左侧,这意味着结果cin >> x变成... >> y的输入流。这就是为什么操作符需要返回已传递给它的相同输入流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流运算符重载中的返回类型 的相关文章

  • 为什么相同的代码在同一台计算机上的执行时间可能不同?

    我是 C 编程新手 我编写了代码并希望获得它的运行时 这就是我所做的 每次运行代码时 我都会得到不同的运行时值 这样对吗 或者我的代码有问题吗 int main int argc char argv time t start end sta
  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col

随机推荐

  • Spark:将大 MySQL 表读入 DataFrame 失败

    我想提前告诉您 以下几个相关问题不能解决我的问题 Spark查询运行速度非常慢 将 mysql 表转换为数据集非常慢 Spark 不会加载大型 MySql 表 Spark MySQL 从数据库读取时出错 This one很接近 但堆栈跟踪不
  • 为什么 jQuery 的电子邮件验证正则表达式如此简单?

    We all know that a regex to validate emails properly would be quite complicated However jQuery s validation plugin has a
  • 使用 git post-receive 挂钩的边带解复用器中出现错误

    我已经使用 git 设置了一个 EC2 实例 并使用 post receive hook 将其部署到我的服务器本教程 这是我的控制台的输出 git push production master email protected s passw
  • 为什么我可以使用 Javascript 阻止 keydown 上的默认事件,但不能阻止 keyup 上的默认事件?

    使用时 keydown我可以捕获 keydown 事件 然后检查并防止默认操作 显示字符 使用时 keyup我不能 我知道该事件被捕获为alert 当代码处于条件内但仍触发时触发preventDefault 不会阻止该操作 这里有一个完整的
  • 按时间和 pandas 中的其他列分组

    我有一个大的 pandas 数据框 其中包含时间戳 名称和值列 index timestamp name value 0 1999 12 31 23 59 59 000107 A 16 1 1999 12 31 23 59 59 00038
  • 胶水爬虫排除模式

    我有一个 s3 存储桶 我正在尝试对其进行爬网和编目 格式是这样的 其中 SQL 文件是 DDL 查询 CREATE TABLE语句 匹配不同数据文件的模式 即data1 data2 etc s3 my bucket somedata 20
  • 将 Html 表导出到 Excel 并保留 css 样式

    我正在使用 Excel Web 查询将 html 表 MVC 视图 导出到 Excel 我如何让它携带CSS样式 如果我设置class redLabel 它不会解释这一点并使标签变为红色 我必须在表格中使用内联样式才能正常工作 有任何想法吗
  • swift 在 iPhone 上截图只有白色背景

    一些背景 我只是想在 swift 中使用 xcode 6 beta 7 做一个简单的程序 以便在按下按钮后对 iPhone 进行屏幕截图 它是在 SpiteKit 和游戏场景中完成的 背景是随机 png 图像和 hello world 默认
  • 使用“cpan”安装 Perl 模块时如何避免 sudo?

    我已将 Perl 从源代码安装到 usr local 中 并相应地调整了我的路径 如下布莱恩 福伊的建议在这里 我确信我遗漏了一些东西 但是 现在我尝试使用 cpan 命令安装东西 但它失败了 因为它无法写入 usr local 我必须使用
  • 对运算符+和/或运算符+=使用移动语义是否有意义?

    我想知道在重载运算符 和 或运算符 时 在什么情况下使用移动语义才有意义 尽管它被解释为这个问题我怎么能做到这一点 我无法理解为什么我要这样做 让我们考虑运算符 如果我只是通过引用传递右侧对象并对左侧对象进行适当的更改 则无论如何都不会产生
  • 在 python 中使用 .pyc 文件时是否有任何性能提升?

    我们可以编写一段python代码并将其放入已经编译好的 pyc 文件中并使用它 我想知道在性能方面是否有任何增益 或者它只是一种对代码进行分组的模块化方式 多谢 在您的计划过程中没有任何性能提升 它只会缩短启动时间 从 pyc 或 pyc
  • 如何从 T-Sql 中的日期时间中提取日期?

    我正在 SQL Server 2005 中针对日期时间列运行选择 我只能从此日期时间列中选择日期吗 最好的办法是 SELECT DATEADD day DATEDIFF Day 0 ADate 0 这是因为 SQL Server 在内部将所
  • 从字符串中查找并提取数字

    我需要查找并提取字符串中包含的数字 例如 从这些字符串 string test 1 test string test1 1 test string test2 test 99 我怎样才能做到这一点 d 是整数的正则表达式 所以 System
  • 如何在满足严格弱排序的n元组上定义operator<

    这个问题在这里已经有答案了 如何定义operator lt 在 n 元组上 例如在 3 元组上 使其满足严格弱序概念 我知道 boost 库有正确定义的元组类operator lt 但由于某些原因我无法使用它 严格弱序 这是一个数学术语 用
  • 记录后重新抛出 UncaughtExceptionHandler 异常

    在我的应用程序类中 我试图在发生之前捕获强制关闭 这样我就可以记录它 然后重新抛出它 以便 android 可以处理它 我这样做是因为有些用户没有报告强制关闭 我正在 eclipse 中开发 而 eclipse 不允许我重新抛出异常 它显示
  • 移动网站 - 在方向改变时重置视口

    我有一个宽度为 590 像素的移动页面 所以我这样设置视口 当我第一次以纵向或横向方式访问该页面时 它看起来不错 页面完全填充宽度 但是当我改变方向时 视口不会改变 当我从纵向转到横向时 视口比 590 像素更宽 反之亦然 仅在 Galax
  • Rails 4 相当于 Rails 3 'Model.all'

    在 Rails 3 中 如果我想访问数据库 我会在查询末尾使用 all 当我执行诸如在写入时刷新缓存 因此读取总是命中缓存 之类的操作时 这非常有用 现在在 Rails 4 中 Model all 返回一个ActiveRecord Rela
  • iOS 错误“请求无效部分的矩形”是什么意思?

    谷歌根本没有透露任何关于此错误消息的帖子 我在 iOS 5 中尝试更新 UITableView 时遇到了这个问题 虽然确切的代码有点复杂 但这就是我对表和包含表数据的 NSMutableArray 所做的事情 这些调用是通过 Perform
  • 如何通过单击 GWT 按钮来下载文件?

    我有一个提供文件服务的 servlet 我正在使用 GWT 构建一个带有 下载 按钮的页面 如何让 GWT 客户端在 onClick 事件中下载文件 附 锚点有效 但按钮看起来更好 如果你有文件地址 您可以打开如下窗口 downloadBu
  • 流运算符重载中的返回类型

    程序的目的是获取输入 将这些值分配给类的成员并显示输出 输入和输出操作是通过重载流运算符来完成的 include