4.5. Overloading Operators
friend istream&
operator>>(istream& streamobj, ClassName& classobj);
friend ostream&
operator<<(ostream& streamobj, const ClassName& classobj);
istreams& operator>>(istream& streamobj,
ClassName& classobj)
{
// code
}
ostream& operator<<(ostream&
streamobj, const ClassName& classobj)
{
/ code
}
Extraction Operator Overloading
#include <iostream>
using namespace std;
class Complex
{
private:
double real, imag;
public:
Complex() { }
Complex(double r, double i)
{
real=r;
imag =1;
}
friend ostream&
operator<<(ostream& output, Complex& obj);
friend istream&
operator>>(istream& input, Complex& obj);
};
ostream& operator<<(ostream&
output, Complex& obj)
{
output<<obj.real<< “,”<<obj
imag;
return output;
}
istream& operator >>(istream&
input, Complex& obj)
{
input >>obj.real>>obj.imag;
return input;
}
int main()
{
Complex obj1(2.5, 3.5);
Complex obj2(1.0, 4.6);
cout<<obj 1<<endl<<obj2;
}
