I
idikoko
I need help overloafing the <,> operators! I wrote a very simple
complex numbers class which basically treats a double as an imaginary
number. I wrote the code to overload the >,< operators but they don't
seem to compile. I'm stuck as to what to do next, please help
class Complex {
public:
Complex( double = 0.0); // constructor
Complex operator+( const Complex & ) const; // addition
Complex operator-( const Complex & ) const; // subtraction
bool operator>( const Complex & ) const; // Comparision
bool operator<( const Complex & ) const; // Comparision
const Complex &operator=( const Complex & ); // assignment
void print() const; // output
friend ostream &operator<<(ostream&, const Complex &);
friend istream &operator>>(istream&, Complex &);
private:
double imaginary; // imaginary part
};
// Member function definitions for class Complex
// Constructor
Complex::Complex( double i )
: imaginary( i ) { }
// Overloaded addition operator
Complex Complex:perator+( const Complex &operand2 ) const
{
return Complex(imaginary + operand2.imaginary );
}
// Overloaded subtraction operator
Complex Complex:perator-( const Complex &operand2 ) const
{
return Complex( imaginary - operand2.imaginary );
}
// Overloaded
bool Complex:perator>( const Complex &right ) const // Comparision
{
return right < *this;
}
// Overloaded
bool Complex:perator<( const Complex &right ) const // Comparision
{
return right > *this;
}
// Overloaded = operator
const Complex& Complex:perator=( const Complex &right )
{
imaginary = right.imaginary;
return *this; // enables cascading
}
// Display a Complex object in the form: (a, b)
void Complex:rint() const
{ cout << imaginary << 'i'; }
ostream &operator<<(ostream &output , const Complex &imagine)
{
output<<imagine.imaginary<<"i";
return output;
}
istream &operator>>(istream &input, Complex &i)
{
input>>i.imaginary;
return input;
}
every portion of this code seems to work fine except the <,> parts!
complex numbers class which basically treats a double as an imaginary
number. I wrote the code to overload the >,< operators but they don't
seem to compile. I'm stuck as to what to do next, please help
class Complex {
public:
Complex( double = 0.0); // constructor
Complex operator+( const Complex & ) const; // addition
Complex operator-( const Complex & ) const; // subtraction
bool operator>( const Complex & ) const; // Comparision
bool operator<( const Complex & ) const; // Comparision
const Complex &operator=( const Complex & ); // assignment
void print() const; // output
friend ostream &operator<<(ostream&, const Complex &);
friend istream &operator>>(istream&, Complex &);
private:
double imaginary; // imaginary part
};
// Member function definitions for class Complex
// Constructor
Complex::Complex( double i )
: imaginary( i ) { }
// Overloaded addition operator
Complex Complex:perator+( const Complex &operand2 ) const
{
return Complex(imaginary + operand2.imaginary );
}
// Overloaded subtraction operator
Complex Complex:perator-( const Complex &operand2 ) const
{
return Complex( imaginary - operand2.imaginary );
}
// Overloaded
bool Complex:perator>( const Complex &right ) const // Comparision
{
return right < *this;
}
// Overloaded
bool Complex:perator<( const Complex &right ) const // Comparision
{
return right > *this;
}
// Overloaded = operator
const Complex& Complex:perator=( const Complex &right )
{
imaginary = right.imaginary;
return *this; // enables cascading
}
// Display a Complex object in the form: (a, b)
void Complex:rint() const
{ cout << imaginary << 'i'; }
ostream &operator<<(ostream &output , const Complex &imagine)
{
output<<imagine.imaginary<<"i";
return output;
}
istream &operator>>(istream &input, Complex &i)
{
input>>i.imaginary;
return input;
}
every portion of this code seems to work fine except the <,> parts!