Complex 类的基本函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Complex 类的基本函数相关的知识,希望对你有一定的参考价值。

 //  Complex 类的基本函数

#include<iostream>
using namespace std;
class Complex
{
public :
	Complex(double real=1.0,double image=2.0)//构造函数  (有参) 调用2次拷贝构造
	{
		_real=real;
		_image=image;
	}
	Complex()  //构造函数  (无参)
	{
	      _real=1.0;
	      _image=2.0;
	}
	亦可写成:
	Complex(double real=1.0,double image=2.0)//构造函数  初始化列表进行初始化
	           :_real(real)                  // 调用1次拷贝构造
	           ,_image(image) 
	{}
	
	Complex(const Complex& c)//拷贝构造函数  参数必须引用传参
	{
		_real=c._real;
		_image=c._image;
	}
	
	~Complex()//析构函数  无参数返回值 清理
	{
		cout<<"~Complex()"<<endl;
	}
	
	Complex& opertator=(const Complex& c) //赋值运算符的重载  =
	{
	       // 方法一:               //     非 const   仅 ---->   const
	        if(this != &c)
	        {
	                _real=c._real;
	                _image=c._image;
	        }
	        return *this;
	       // 方法二:
	       // if(this != &c)
	       // {
	       //        swap(_real,c._real);
	       //        swap(_image,c._image);
	       // }
	       // return *this;
	        
	}
	Complex& opertator+(const Complex& c)  //   +
	{
	       Complex tmp;
	       tmp._real=_real+c._real;
	       tmp._image=_image+c._image;
	       return tmp;
	}
	Complex& opertator-(const Complex& c)   //   -
	{
	       Complex tmp;
	       tmp._real=_real-c._real;
	       tmp._image=_image-c._image;
	       return tmp;
	}
	Complex operator*(Complex& c)          //  *
	{
		Complex tmp;
		tmp._real=_real*c._real;
		tmp._image=_image*c._image;
		return tmp;
	}
	Complex operator/(Complex& c)          //  /
	{
		Complex tmp;
		tmp._real=_real/c._real;
		tmp._image=_image/c._image;
		return tmp;
	}
	
	Complex& opertator++(int)    //   后置++
	{
	       Complex tmp(*this);
	       _real++;
	       _image++;
	       return tmp; //不能返回引用
	} 
	Complex& opertator++()       //   前置++
	{
	       _real=_real+1;
	       _image=_image+1;
	       return *this;
	}
	
	Complex operator --(int)      //   后置 --
	{
		Complex tmp(*this);
		_real--;
		_image--;
		return tmp;
	}
	Complex& operator --()       //   前置 --
	{
		_real=_real-1;
		_image=_image-1;
		return *this;
	}
	
public:
        bool operator>(const Complex& c)
        {
                return _real>c._real;
                return _image>c._image;
        }
        Complex* opertator&()
        {
                return *this;
        }
	
protected :
	double _real ;
	double _image;
};

void Test1()
{
	Complex c1(3.0,6.0);
	c1.Display1();
	c1.Display2();

	Complex c2(c1);
	c2.Display1();
	c2.Display2();

	Complex ret1=c1+c2;
	ret1.Display1();

	Complex ret2=c1-c2;
	ret2.Display1();

	Complex ret3=c1*c2;
	ret3.Display1();

	Complex ret4=c1/c2;
	ret4.Display1();

	(c1++).Display1();
	(++c1).Display1();
	(c1--).Display1();
	(--c1).Display1();

	(c1+=c2).Display1();
	(c1-=c2).Display1();
}

int main()
{
	Test1();

	return 0;
}


本文出自 “花开彼岸” 博客,请务必保留此出处http://zxtong.blog.51cto.com/10697148/1752745

以上是关于Complex 类的基本函数的主要内容,如果未能解决你的问题,请参考以下文章

C++编程,定义一个复数类

定义一个复数类,并实现以下复数类的方法:构造方法、得到实部、得到虚部、设置实部、设置虚部、复数的加

Complex类的实现

CPP0048复数类四则运算及插入/提取操作

用JAVA定义个复数类

java 中实现复数的加减