C++运算符重载——输入/输出运算符
2016-12-04 15:29
246 查看
为了与IO标准库一致,重载输入输出运算符函数的第一个行参应该是流的引用,第二个行参是对象的引用。
如果重载为类的成员函数,第一个行参应该是对象的引用,第二个行参是流的引用。
使用方式是 ClassObj << cout 这样与标准IO库就不一致了,所以输入输出运算符不能重载为类的成员函数,可以重载为类的友元函数和普通函数。
通常重载输出运算符<<的第二个形参是const的,因为输出一个类不许要更改它;
但是重载输入运算符>>的第二个形参必须是非const的,否则无法赋值。
重载的基本方法如下:
如果重载为类的成员函数,第一个行参应该是对象的引用,第二个行参是流的引用。
使用方式是 ClassObj << cout 这样与标准IO库就不一致了,所以输入输出运算符不能重载为类的成员函数,可以重载为类的友元函数和普通函数。
通常重载输出运算符<<的第二个形参是const的,因为输出一个类不许要更改它;
但是重载输入运算符>>的第二个形参必须是非const的,否则无法赋值。
重载的基本方法如下:
//重载输出运算符 ostream& operator<<(ostream& out, **const** ClassType& obj) { out << /*想要输出的内容1*/ << /*想要输出的内容2*/ <<...; return out; } //重载输入运算符 istream& operator<<(istream& in, ClassType& obj) { in >> /*想要输入的内容1*/ >> /*想要输入的内容2*/ >>...; //检查错误 和 文件结束的可能性 return in; }
相关文章推荐
- C++运算符重载——输入/输出运算符
- c++重要知识点---模板、重载输入或输出运算符的运用
- C++第九周【任务一】定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 输入和输出运算符的重载
- 输入运算符和输出运算符的重载
- 第九周任务一(定义Complex类中的<<和>>运算符的重载,实现输入和输出)
- 输入输出运算符的重载
- 第九周【项目1】在第8周项1的基础上(1)再定义一目运算符 -,-c相当于0-c(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然
- 第九周试验任务1--定义Time类中的<<和>>运算符的重载,实现输入和输出。
- 第九周实验任务二--定义Complex类中的<<和>>运算符的重载,实现输入和输出,使程序读起来更自然
- 通过重载输入和输出运算符实现复数的输入和输出
- 第九周 C++任务一。定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 《C++第九周实验报告1-1》--------接第8周任务1,定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 建立一个二维坐标系的类TwoCoor,用x、y表示坐标值,实现两坐标点的加减运算,计算两坐标点之间的距离,并重载输入输出运算符,使之能够直接输入输出坐标点的坐标值。
- 《第九周任务一》定义Complex类中的《《和》》运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然
- 第九周实验报告 任务2 定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- java switch语句练习 从键盘输入2个数和一个运算符(+,-,*,/),输出运算结果
- Python基础知识(三)--基本的异常处理、算术运算符、输入/输出
- c++文件输入输出流fstream,对输入>>和输出<<重载
- Python学习--02输入和输出、运算符