1、输出操作符 << 重载
非成员函数 → 友元函数
ostream& operator<<(ostream& out, const Sales_item& s)
{
out << s.isbn << "\t" << s.units_sold << "\t" << s.revenue;
return out;
}
2、输入操作符 >> 重载
处理输入操作的错误
istream& operator>>(istream& in, Sales_item& s)
{
double price;
in >> s.isbn >> s.units_sold >> price;
if(in)
s.revenue = s.units_sold * price;
else
s = Sales_item();
return in;
}
这两个必须作为Sales_item的友元函数,因为左操作数不是该类类对象,且要访问Sales_item的私有成员。