标签:
#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.
}
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4396393.html