.重载运算符“<<”和“>>”,使其能够输入一件商品的信息和输出这件商品的信息。商品的信息由编号、商品名和价格。假如商品类Merchandise的框架如下:
class merchandise{
public:
Merchandiss();
~Merchandiss();
friend istream& operator>>(istream& in,Merchandiss& s);
friend ostream&operator<<(ostream& out,Merchandiss& s);
private:
int no;
char *name;
double price;
};
要求实现该类,并编写以下的main函数对该类进行操作。
int main()
{ Merchandise mer;
cin>>mer;
cout<<mer;
return 0;
}
其代码:
#include<iostream.h>
#include<string.h>
//using namespace std;
class Merchandise{
public:
Merchandise(){};
~Merchandise(){};
friend istream &operator >> (istream &in,Merchandise &s);
friend ostream &operator << (ostream &out,Merchandise &s);
private:
int no;
char *name;
double price;
};
istream& operator >>(istream &in,Merchandise &s) //对<<进行重载
{
char temp[10];
s.name=new char[strlen(temp)+1];
cout<<"please input commoditiy's no:"<<endl;
in>>s.no;
cout<<"please input commoditiy's name:"<<endl;
in>>temp;
strcpy(s.name,temp);
cout<<"please input commoditiy's price:"<<endl;
in>>s.price;
return in;
}
ostream& operator <<(ostream &out,Merchandise &s) //对<<进行重载
{
out<<"\t"<<"commoditiy's information"<<endl;
out<<"no"<<"\t"<<"name"<<"\t"<<"price"<<endl;
out<<s.no<<"\t"<<s.name<<"\t"<<s.price<<endl;
return out;
}
#include<iostream.h>
#include"12-5-2-4.h"
//using namespace std;
int main()
{ Merchandise mer;
cin>>mer;
cout<<mer;
return 0;
}