#include <iostream>
using namespace std;
class complex
{
private:
double re,im;
public:
complex(double real=0,double imaginary=0) : re(real),im(imaginary){}
friend ostream & operator<< (ostream & screen, const complex & liczba);
friend istream & operator>> (istream & keyboard,complex & liczba);
friend complex operator+ (complex & liczba1,complex & liczba2);
};
ostream & operator<< (ostream & screen, const complex & liczba)
{
screen << liczba.re << "+" << liczba.im << "j";
return screen;
}
istream & operator>> (istream & keyboard,complex & liczba)
{
keyboard >> liczba.re;
cout << "Re: " << liczba.re;
keyboard.ignore();
keyboard >> liczba.im;
cout << " Im: " << liczba.im << endl;
keyboard.ignore();
return keyboard;
}
complex operator+ (complex & liczba1,complex & liczba2)
{
complex sum;
sum.re=liczba1.re+liczba2.re;
sum.im=liczba1.im+liczba2.im;
return sum;
}
int main()
{
cout << "Podaj a" << endl;
complex a; cin >> a;
cout << "Podaj b" << endl;
complex b; cin >> b;
cout << a+b;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKY2xhc3MgY29tcGxleAp7CnByaXZhdGU6CiAgICBkb3VibGUgcmUsaW07CiAKcHVibGljOgogICAgY29tcGxleChkb3VibGUgcmVhbD0wLGRvdWJsZSBpbWFnaW5hcnk9MCkgOiByZShyZWFsKSxpbShpbWFnaW5hcnkpe30KICAgIGZyaWVuZCBvc3RyZWFtICYgb3BlcmF0b3I8PCAob3N0cmVhbSAmIHNjcmVlbiwgY29uc3QgY29tcGxleCAmIGxpY3piYSk7CiAgICBmcmllbmQgaXN0cmVhbSAmIG9wZXJhdG9yPj4gKGlzdHJlYW0gJiBrZXlib2FyZCxjb21wbGV4ICYgbGljemJhKTsKICAgIGZyaWVuZCBjb21wbGV4IG9wZXJhdG9yKyAoY29tcGxleCAmIGxpY3piYTEsY29tcGxleCAmIGxpY3piYTIpOwp9OwogCm9zdHJlYW0gJiBvcGVyYXRvcjw8IChvc3RyZWFtICYgc2NyZWVuLCBjb25zdCBjb21wbGV4ICYgbGljemJhKQp7CiAgICBzY3JlZW4gPDwgbGljemJhLnJlIDw8ICIrIiA8PCBsaWN6YmEuaW0gPDwgImoiOwogICAgcmV0dXJuIHNjcmVlbjsKfQogCmlzdHJlYW0gJiBvcGVyYXRvcj4+IChpc3RyZWFtICYga2V5Ym9hcmQsY29tcGxleCAmIGxpY3piYSkKewogICAga2V5Ym9hcmQgPj4gbGljemJhLnJlOwogICAgY291dCA8PCAiUmU6ICIgPDwgbGljemJhLnJlOwogICAga2V5Ym9hcmQuaWdub3JlKCk7CiAgICBrZXlib2FyZCA+PiBsaWN6YmEuaW07CiAgICBjb3V0IDw8ICIgSW06ICIgPDwgbGljemJhLmltIDw8IGVuZGw7CiAgICBrZXlib2FyZC5pZ25vcmUoKTsKICAgIHJldHVybiBrZXlib2FyZDsKfQogCmNvbXBsZXggb3BlcmF0b3IrIChjb21wbGV4ICYgbGljemJhMSxjb21wbGV4ICYgbGljemJhMikKewogICAgY29tcGxleCBzdW07CiAgICBzdW0ucmU9bGljemJhMS5yZStsaWN6YmEyLnJlOwogICAgc3VtLmltPWxpY3piYTEuaW0rbGljemJhMi5pbTsKICAgIHJldHVybiBzdW07Cn0KIAppbnQgbWFpbigpCnsKICAgIGNvdXQgPDwgIlBvZGFqIGEiIDw8IGVuZGw7CiAgICBjb21wbGV4IGE7IGNpbiA+PiBhOwogICAgY291dCA8PCAiUG9kYWogYiIgPDwgZW5kbDsKICAgIGNvbXBsZXggYjsgY2luID4+IGI7CiAgICBjb3V0IDw8IGErYjsKICAgIHJldHVybiAwOwp9