C++:重载提取运算符(>>)与插入运算符(<<)

重载提取运算符的格式:

istream& operator>>(istream& scin,user_name& obj){

scin>>obj.a;

scin>>obj.b;

...........

return scin;

}

重载插入运算符的格式:

ostream& opreator<<(ostream& sout,user_name& obj){

sout<<obj.a;

sout<<obj.b;

...........

return sout;

}

其中,sout代表自己命名的一个输出流对象,scin代表自己命名的一个输入流对象,可以自己另外命名。user_name代表类名,obj代表类对象的引用,也是自己命名。

来看示例:

#include<iostream>
using namespace std;
class Base {
private:
	int a;
	float b;
public:
	Base(int A, float B) {
		a = A;
		b = B;
	}
	friend ostream& operator<<(ostream& sout,Base& b) {
		sout << b.a << " " << b.b;
		return sout;
	}
	friend istream& operator>>(istream& sin, Base& b) {
		sin >> b.a;
		sin >> b.b;
		return sin;
	}
};
int main() {
	Base test(200, 3.1415926535);
	cout << test << endl;
	cin >> test;
	cout << test;
}

运行结果:

200 3.14159
100 278.33(这行是我的输入)
100 278.33

可见,声明为类的友元函数的重载运算符还能改变私有对象的值。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值