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

【C++】class的设计与使用(十)重载iostream运算符

希望对某个类对象进行读写操作,直接cout<<类对象<<endl;cin>>类对象;编译器会报错,所以我们必须提供一份重载的input/output运算符:

重载ostream运算符

ostream& operator<<(ostream &os, const Triangular &rhs)
{os<<"("<<rhs.beg_pos()<<","<<rhs.legnth()<<")";rhs.display(rhs.length(),rhs.beg_pos(),os);return os;//传入重载运算符函数的ostream对象又被原封不动地返回
}//给定对象
Triangular tri(6,3);cout<<tri<<endl;
//输出结果:(3,6) 6 10 15 21 28 36
  • ostream对象未声明为const,是因为每一次输出都会更改ostream对象的内部状态,rhs这种被输出的对象就会被声明为const。
  • 我们使用了&传址的方式,是基于效率考虑而非为了修改其对象内容。

重载istream运算符

istream& operator>>(istream &is,Triangular &rhs)
{char ch1,ch2; int bp,len;//假设输入为(3,6) 6 10 15 21 28 36//那么ch1=='(',bp==3,ch2==',',len==6。is>>ch1>>bp>>ch2>>len;//设定rhs的三个数据成员rhs.beg_pos(bp);rhs.length(len);rhs.next_reset();return is;
}

一般而言,input运算符的实现比较复杂。因为读入的数据可能有问腿。

http://www.lryc.cn/news/179702.html

相关文章:

  • Java使用Scanner类实现用户输入与交互
  • FFmpeg 命令:从入门到精通 | ffppeg 命令参数说明
  • Chrome(谷歌浏览器)如何关闭搜索栏历史记录
  • 基于Java的宠物医院管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 使用WPS自动化转换办公文档: 将Word, PowerPoint和Excel文件转换为PDF
  • 对pyside6中的textedit进行自定义,实现按回车可以触发事件。
  • Spark SQL
  • 初识多线程
  • Linux用户、用户组和文件权限的管理与实践
  • 【CMU15-445 Part-14】Query Planning Optimization I
  • 七、垃圾收集中级
  • el-menu 导航栏学习(1)
  • Axios请求封装
  • Pikachu靶场——XXE 漏洞
  • vscode登录租的新服务器
  • Verilog参数定义与仿真模块中的参数修改
  • Android studio升级Giraffe | 2022.3.1 Patch 1踩坑
  • 使用U3D、pico开发VR(二)——添加手柄摇杆控制移动
  • 【FPGA项目】图像采集及显示(2)详细设计方案
  • 查找排序部分习题 242. 有效的字母异位词 74. 搜索二维矩阵 1. 两数之和 167.两数之和 II
  • MATLAB算法实战应用案例精讲-【优化算法】冠状病毒优化算法(COVIDOA)(附MATLAB代码实现)
  • React查询、搜索类功能的实现
  • k8s搭建EFK日志系统
  • LuatOS-SOC接口文档(air780E)-- fonts - 字体库
  • [Java·算法·困难]LeetCode124.二叉树中的最大路径和
  • 【微服务保护】
  • 【MATLAB第78期】基于MATLAB的VMD-SSA-LSTM麻雀算法优化LSTM时间序列预测模型
  • 分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测
  • 唤醒手腕 Matlab 游戏编程常用技术知识点详细教程(更新中)
  • 2023八股每日一题(九月份)