码迷,mamicode.com
首页 > 其他好文 > 详细

14.2. 输入和输出操作符重载

时间:2015-04-06 20:06:17      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

#include<iostream>
#include<string>
using namespace std;

class sales_item
{
	friend istream& operator>>(istream &,sales_item&);
	friend ostream& operator<<(ostream&,const sales_item&);
public:
	sales_item& operator+=(const sales_item&);

private:
	int a;
	string str;
};
sales_item operator+(const sales_item&,const sales_item&);
/*
我们不能将该操作符定义为类的成员,否则,左操作数将只能是该类类型的对象
相反,如果想要使用重载操作符为该类型提供 IO 操作,就必须将它们定义
为非成员函数。IO 操作符通常对非公用数据成员进行读写,因此,类通常将 IO 
操作符设为友元。
*/

//输出操作符的重载
ostream& operator<<(ostream& os,const sales_item& sales)
{
	os<<sales.str<<endl;
	return os;
}

//输入运算符的重载
/*与输出操作符类似,输入操作符的第一个形参是一个引用,指向它要读的流,
并且返回的也是对同一个流的引用。它的第二个形参是对要读入的对象的非 
const 引用,该形参必须为非 const,因为输入操作符的目的是将数据读到这个
对象中*/
istream& operator>>(istream& ism,sales_item& sales)
{
	ism>>sales.str;
	if(!ism)
	{sales.str=" ";}
	return ism;
}



int main()
{
	ostream& os;
	os.

}

  

14.2. 输入和输出操作符重载

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4396393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!