#include<iostream>
using namespace std;
class complex1
{
float real,img;
public:
complex1() : real(0.0), img(0.0){}
complex1(float a,float b)
{
real=a;
img=b;
}
friend complex1 sum(complex1,complex1);
friend void display(complex1);
};
complex1 sum(complex1 c1,complex1 c2)
{
complex1 c3;
c3.real=c1.real+c2.real;
c3.img=c1.img+c2.img;
return c3;
}
void display(complex1 c)
{
cout<<c.real<<"+j"<<c.img;
}
int main()
{
complex1 c1(100.9,200.9);
complex1 c2(50.9,50.9);
complex1 c=sum(c1,c2);
display(c); //display and sum is given directly because it is friend
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBjb21wbGV4MQp7CiAgICBmbG9hdCByZWFsLGltZzsKcHVibGljOgogICAgY29tcGxleDEoKSA6IHJlYWwoMC4wKSwgaW1nKDAuMCl7fQogICAgY29tcGxleDEoZmxvYXQgYSxmbG9hdCBiKQogICAgewogICAgICAgIHJlYWw9YTsKICAgICAgICBpbWc9YjsKICAgIH0KICAgIGZyaWVuZCBjb21wbGV4MSBzdW0oY29tcGxleDEsY29tcGxleDEpOwogICAgZnJpZW5kIHZvaWQgZGlzcGxheShjb21wbGV4MSk7Cn07Cgpjb21wbGV4MSBzdW0oY29tcGxleDEgYzEsY29tcGxleDEgYzIpCnsKICAgIGNvbXBsZXgxIGMzOwogICAgYzMucmVhbD1jMS5yZWFsK2MyLnJlYWw7CiAgICBjMy5pbWc9YzEuaW1nK2MyLmltZzsKICAgIHJldHVybiBjMzsKfQoKdm9pZCBkaXNwbGF5KGNvbXBsZXgxIGMpCnsKICAgIGNvdXQ8PGMucmVhbDw8IitqIjw8Yy5pbWc7Cn0KCmludCBtYWluKCkKewogICAgY29tcGxleDEgYzEoMTAwLjksMjAwLjkpOwogICAgY29tcGxleDEgYzIoNTAuOSw1MC45KTsKICAgIGNvbXBsZXgxIGM9c3VtKGMxLGMyKTsKICAgIGRpc3BsYXkoYyk7ICAgICAvL2Rpc3BsYXkgYW5kIHN1bSBpcyBnaXZlbiBkaXJlY3RseSBiZWNhdXNlIGl0IGlzIGZyaWVuZAogICAgcmV0dXJuIDA7Cn0=