#include <bits/stdc++.h>
using namespace std;
class Int
{
public:
int real;
Int(int a = 0)
{
real = a;
}
virtual void show()
{
cout << real << endl;
}
};
class Complex:public Int
{
public:
Complex(int a = 0, int b = 0):Int(a)
{
image = b;
}
void show()
{
cout << real << "+" << image << "i" << endl;
}
Complex operator+(Complex &c2)
{
Complex c;
c.real = real + c2.real;
c.image = image + c2.image;
return c;
}
friend ostream & operator<<(ostream &output, Complex &c);
private:
int image;
};
ostream & operator<<(ostream &output, Complex &c)
{
output << c.real << "+" << c.image << "i" << endl;
return output;
}
int main()
{
int b, d, a, m;
cin >>a >> b >> m >> d;
Int t(5);
Complex c1(a, b), c2(m, d);
Complex c(0, 0);
c = c1 + c2;
cout << c ;
Int *p = &t;
p->show();
p = &c;
p->show();
return 0;
}
using namespace std;
class Int
{
public:
int real;
Int(int a = 0)
{
real = a;
}
virtual void show()
{
cout << real << endl;
}
};
class Complex:public Int
{
public:
Complex(int a = 0, int b = 0):Int(a)
{
image = b;
}
void show()
{
cout << real << "+" << image << "i" << endl;
}
Complex operator+(Complex &c2)
{
Complex c;
c.real = real + c2.real;
c.image = image + c2.image;
return c;
}
friend ostream & operator<<(ostream &output, Complex &c);
private:
int image;
};
ostream & operator<<(ostream &output, Complex &c)
{
output << c.real << "+" << c.image << "i" << endl;
return output;
}
int main()
{
int b, d, a, m;
cin >>a >> b >> m >> d;
Int t(5);
Complex c1(a, b), c2(m, d);
Complex c(0, 0);
c = c1 + c2;
cout << c ;
Int *p = &t;
p->show();
p = &c;
p->show();
return 0;
}