View code
/*
Operator overload, type conversion function, conversion Constructor
No parameter default constructor, with parameter initialization constructor,
*/
# Include <iostream. h>
// # Include <iostream>
# Include <cstdlib>
// Using namespace STD;
Class Complex
{
Public:
Complex () {real = 0; imag = 0;} // default constructor without Parameters
// Complex (double r) {real = r; imag = 0;} conversion Constructor
Complex (Double R, double I) {real = r; imag = I;} // constructor with Parameters
Operator double () {cout <"real =" <real; return real;} // type Conversion Function
Friend complex operator + (complex C1, complex C2); // operator overload
Void display ();
PRIVATE:
Double real;
Double imag;
};
Complex operator + (complex C1, complex C2)
{
Return complex (c1.real + c2.real, c1.imag + c2.imag );
}
Void complex: Display ()
{
Cout <"(" <real <"," <imag <"I)" <Endl;
}
Int main ()
{
Complex C1 (3, 4), C2 (5,-10), C3;
Double T = C1 + 2.5;
Cout <"t =" <t <Endl;
C3.display ();
C3 = C1 + C2;
C3.display ();
System ("pause ");
Return 0;
}