问题 E: 1.复数的加法、减法和前自增(★)

题目描述
实现复数类以及复数类数据的加减运算。复数类的数据成员包括:实部real和虚部imag。real和imag均是整数类型。复数的输入和输出使用重载以后得流符号“>>”,“<<”。

输入
输入第一行为1个复数(按照先实部后虚部顺序输入);

输入第二行为1个复数(按照先实部后虚部顺序输入);

输入第三行为用户希望进行的运算符号,可以是+号也可以是-号;

输出
两个数都进行前自增运算,之后按照用户输入的符号进行运算,并将结果以复数形式输出

样例输入

1 2
3 4
+
1 2
3 4
-

样例输出

6+8i
-2-2i
#include
using namespace std;
class com{
private:
    int r,i;
public:
    friend ostream & operator<<(ostream & out,com &);
    friend istream & operator>>(istream& in,com &);
    com operator+(com c);
    com operator-(com c);
    com(int m=0,int n=0);
};
ostream & operator<<(ostream & out,com &x){
    if(x.i>0){
        out<>(istream& in,com &x){
    in>>x.r>>x.i;        
    /*
    也可以如此
    int a,b;
    in>>a>>b;
    x.r=a;x.i=b;
   */
    return in;           //也可以不要return值(无return值会提示但是可通过)
}
com com::operator+(com c){
    r++;c.r++;
 com t;
 t.r=r+c.r;
 t.i=i+c.i;
 return t;
}
com com::operator-(com c){
 com t;
 r++;c.r++;
 t.r=r-c.r;
 t.i=i-c.i;
 return t;
}
com::com(int m,int n){
  r=m;i=n;
}
int main(){
    com a1,a2,a3;
    cin>>a1>>a2;
    char s;
    cin>>s;
    switch (s) {
        case '+' :a3=a1+a2 ;cout<

你可能感兴趣的:(c++)