// Complex.h: interface for the Complex class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMPLEX_H__DDF879E1_5100_4AD9_909C_0C61887CED08__INCLUDED_)
#define AFX_COMPLEX_H__DDF879E1_5100_4AD9_909C_0C61887CED08__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <iostream>

class Complex  
{
public:
    void print(std::ostream &os);
	void print();
	void setValue(double real, double imaginary);
	Complex(double real, double imaginary);
	bool equal(Complex rhs, double precision);
	double magnitue();
	bool divide(Complex rhs);
	void multiply(Complex rhs);
	void subtract(Complex rhs);
	void add(Complex rhs);
	Complex();
	virtual ~Complex();
    static void unitTest();
    CPoint convertPoint();
private:
	double m_real;
	double m_imaginary;
};

std::ostream& operator<<(std::ostream& os, Complex &src);
std::ostream* operator<<(std::ostream* os, Complex src);

#endif // !defined(AFX_COMPLEX_H__DDF879E1_5100_4AD9_909C_0C61887CED08__INCLUDED_)
