【原创】C++_第一周_C++ complex类的实现(我的第一个c++程序)

如果喜欢可以关注我

本文是我真正意义上第一个c++程序,在此期间查阅了大量的资料,实现了一个complex类,实现了类模板,水平有限,如有错误请私信我。

本程序实现的功能:

1. +  -  *  /                              重载函数

2. +=  -=  *=  /=                      重载函数

3. 赋值重载函数

4.判断是否相等,是否不等的重载函数

5.取正,取负的重载函数

6.get_real ,get_imag  成员函数(成员函数互为友元)

7.友元函数,this指针的使用。

8.complex类的显示

因为程序比较简单,我都做了注释,就不详细展开,如有问题请私信我。

 

/*	本程序的注释代表仅代表个人理解,不一定完全正确,全是我亲自敲上去的,如有错误请联系我。  	*/


#ifndef __COMPLEX_B_H__
#define __COMPLEX_B_H__




template<typename T>		//定义模板 typename is T

class complex			/*	复数类	*/
{
public:
	complex(T r = 0, T i =0) : re(r), im(i)
	{
		;
	}
	complex& operator += (const complex&);	//成员函数
	complex& operator -= (const complex&);
	complex& operator *= (const complex&);
	complex& operator /= (const complex&);
	complex& operator = (const complex&);	//赋值运算符重载函数
	T real() const { return re; }
	T imag() const { return im; }

private:
	T re, im;

	friend complex& __doadd(complex *, const complex&);
	friend complex& __dosub(complex *, const complex&);
	friend complex& __domul(complex *, const complex&);
	friend complex& __dodiv(complex *, const complex&);
	friend complex& __doequ(complex*, const complex&);	//赋值实际运算函数

};



/************	全局函数声明区	***************/

double real(const complex<double>& x);	//取对象的实部(全局函数),不用在类外专门定义传参数
double imag(const complex<double>& x);	//取对象的虚部(全局函数),不用在类外专门定义传参数
inline complex<double>& __doequ(complex<double>* ths, const complex<double>& r);	//赋值实际运算函数

/**************************************************************************************************************************************************************/


/************			+= -= *= /=			***************************************************************************************************************************/
/*	复数 += 的实际运算函数	*/
inline complex<double>& 
__doadd(complex<double>* ths, const complex<double>& r)	
{
	ths->re += r.re;
	ths->im += r.im;
	return *ths;
}

/*	函数名 ooerator+=	运算
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值