#include <iostream>
using namespace std;
// uses friend functions to overload >> and << for complex numbers
class Complex {
private:
int real, imag;
public:
Complex(int r = 0, int i = 0) {
real = r;
imag = i;
}
friend ostream& operator<<(ostream &out, const Complex &c);
friend istream& operator>>(istream &in, Complex &c);
};
istream& operator>>(istream &in, Complex &c) {
cout << "Enter Real Part: ";
in >> c.real;
cout << "Enter Imaginary Part: ";
in >> c.imag;
return in;
}
ostream& operator<<(ostream &out, const Complex &c) {
out << c.real << " + " << c.imag << "i";
return out;
}
int main() {
Complex c1;
cin >> c1;
cout << "The Complex object is: ";
cout << c1;
return 0;
}