c++ 重载 >>(输入) 、<< (输出) 操作符
来源:互联网 发布:冉莹颖高考成绩知乎 编辑:程序博客网 时间:2024/06/05 08:55
重载输出操作符 <<
为了与标准库IO操作一致,重载 << 操作符函数应把ostream&作为其第一个参数,对类类型const对象的引用作为第二个参数,并返回对ostream形参的引用。
ostream& operator<<(ostream& out, const Sales_item& s){ out << s.isbn << “\t” << s.units_sold << “\t” << s.revenue << “\t” << s.avg_price(); return out;}
一般而言,“<<”应输出对象的内容,进行最小限度的格式化,尤其不应输出换行符,而让用户自己控制输出细节。
“<<”操作符应定义为非成员函数。因为对于类的成员函数,左操作数为该类类型的对象,这样只能将第二个参数作为ostream&,使用时:
Sales_item item;item << cout;
这与“<<”的正常使用习惯相反。所以“<<”操作符应定义为非成员函数,并将其作为所操作类的友元。
重载输入操作符 >>
与输出操作符类似,输入操作符函数的第一个形参为流的引用,第二个形参为类类型对象的引用(非const,因为 >> 的目的就是将数据读入到该对象中)。
istream& operator>>(istream& in, Sales_item& s){ double price; in >> s.isbn >> s.units_sold >> price; // check that the inputs succeeded if (in) s.revenue = s.units_sold * price; else s = Sales_item(); // input failed: reset object to default state return in;}
输入操作符要检测和处理在读入数据时可能发生的错误。如果输入失败,则确保对象处于可用和一致的状态,比如将形参恢复为空的Sales_item对象。除此之外,还可以设置流的条件状态。用户如果想知道输入是否成功,可以测试流。
【学习资料】 《c++ primer》
出处:http://www.cnblogs.com/zhuyf87/archive/2013/02/25/2932441.html
0 0
- c++ 重载 >>(输入) 、<< (输出) 操作符
- c++ 重载 >>(输入) 、<< (输出) 操作符
- 重载输入>>,输出<<操作符
- 输入和输出的操作符重载
- 输入和输出重载操作符
- c++输入和输出操作符重载
- C++(27)输入/输出、算术/关系操作符
- C++重载操作符之二(输入>>,输出<<,以及乘法)
- (待解决)输入操作符重载。
- c++输出(<<)操作符重载
- C++输入操作符>> 输出操作符<<重载
- 操作符重载(C++)
- C++,重载输出操作符<<, cout.operator()
- 重载输出操作符
- 输出操作符重载
- 重载输出操作符
- 【C++】operator关键字(重载操作符)
- 重载输出操作符("<<")时遇到的问题
- 双亲委派模型与自定义类加载器
- 【进度控制】SeekBar进度条
- 以 Okhttp3源码 为例 ------ 探索 缓存机制 的原理和实现(一)
- 天纵智能软件快速开发一般统计分析插件
- UITableView实现格瓦拉飞天投票模块
- c++ 重载 >>(输入) 、<< (输出) 操作符
- Git入门,最常用的几个命令
- call(),apply()
- Linq查询数据集取得排序后的序列号(行号)
- Oracle insert 导致hint DRIVING_SITE失效解决方案
- h5页面唤醒APP指定页面并传参
- 第3个python程序:数字和数学计算
- JavaScript的12张图片
- iOS dispatch_group_enter的使用