标签:
#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