#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
class Numbers
{
private:
int len;
char sign;
short array[10000];
public:
Numbers()
{
len=1;
sign='+';
for(int index=0;index<=9999;index++)
{
array[index]=0;
}
}
Numbers operator +(const Numbers current)
{
Numbers result;
result=*this;
return result;
}
friend InputStream operator >>(InputStream stream,Numbers &temporary)
{
int index=1;
char string[10000];
while(true)
{
if(temporary.sign=='+')
{
temporary.sign='+';
}
else
{
temporary.sign='-';
}
stream>>string[index];
if(index==1&&string[index]=='-')
{
temporary.sign='-';
index--;
}
else
{
;
}
if(string[index]=='\n'||string[index]==' ')
{
string[index]=0;
break;
}
else
{
;
}
index++;
}
temporary.len=index;
for(int index=9999;index>=9999-strlen(string+1);index--)
{
temporary.array[index]=string[9999-index+1]-48;
}
return stream;
}
friend OutputStream operator <<(OutputStream stream,Numbers temporary)
{
if(temporary.sign=='-')
{
stream<<'-';
}
for(int index=9999;index>=9999-temporary.len+2;index--)
{
stream<<temporary.array[index];
}
return stream;
}
};
int main()
{
Numbers a,b;
In>>a>>b;
a=a+b;
Out<<a;
}
先说明:In与Out是其他类的,保证正确,只是a=a+b,有点懵,没定义operator =就能使用...