一 概述
学会了重载输出运算符<<,那么重载输入运算符>>,基本也就会学了,我们本节在重载输出运算符的基本上,稍作修改,进行重载输入运算符.
二 重载说明
重载输入运算符函数跟输出运算符函数的区别有三点:
- 第一:输出运算符"<<"变为输入运算符">>"
- 第二:由于cin是输入流istream类中的对象,因此我们要将ostream换成istream
- 第三:由于是输入,要对传递进函数内的第2个参数进行修改,也就是cin操作的对象c.x所以第2个接受参数const A&c不应再定义为常量,要去掉const
三 示例演示及输出结果
3.1 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include<iostream> using namespace std; class A { public: A(int x){rx = x;} friend ostream&operator<<(ostream&s,const A&a) { s<<a.rx; return s; } friend istream&operator>>(istream&s,A&a) { s>>a.rx; return s; } int operator++(){cout<<"++i\n";rx++;return rx;} int operator++(int){cout<<"i++\n";int i=rx;rx++;return i;} private: int rx; };
int main() { A a(3); cin>>a; cout<<a<<endl; return 0; }
|
3.2 输出结果