c++重载运算符
---by ysmor
重新解释运算符的含义,叫做运算符重载-----c++程序设计P277
不多说了,给代码
#include<iostream>
using namespace std;
class bign
{
public:int x;
int y;
int z;
public:
bign(int a,int b,int c)
{
x=a;
y=b;
z=c;
}//注意用友元函数
friend bign operator + (bign a,bign b);//重定义+
friend bign operator - (bign a,bign b);//重定义-
friend bign operator * (bign a,bign b);//重定义*
friend bign operator / (bign a,bign b);//重定义/
friend istream & operator >> (istream &in,bign &a);//重定义>>
friend ostream & operator << (ostream &out,bign &a);//重定义<<
};
bign operator + (bign a,bign b)
{
return bign(a.x+b.x,a.y+b.y,a.z+b.z);
}
bign operator - (bign a,bign b)
{
return bign(a.x-b.x,a.y-b.y,a.z-b.z);
}
bign operator * (bign a,bign b)
{
return bign(a.x*b.x,a.y*b.y,a.z*b.z);
}
bign operator / (bign a,bign b)
{
return bign(a.x/b.x,a.y/b.y,a.z/b.z);
}
istream & operator >> (istream &in,bign &a)
{
in>>a.x>>a.y>>a.z;
return in;
}
ostream & operator << (ostream &out,bign &a)
{
out<<a.x<<" "<<a.y<<" "<<a.z<<endl;
return out;
}
int main()
{
bign x(0,0,0),y(90,100,908),z(0,0,0);
cin>>x;
z=x+y;
cout<<z<<endl;
z=x-y;
cout<<z<<endl;
z=x*y;
cout<<z<<endl;
z=y/x;
cout<<z<<endl;
system("pause");
return 0;
}
输入9 100 2
运行结果
99 200 910
-81 0 -906
810 10000 1816
10 1 454
请按任意键继续. . .
THE END...
欢迎大家跟帖,并继续关注我