C++实现复数类
其中运算只以加法举例,还可以自己实现加减乘除,正弦余弦等。代码可以参考标准库。标准库确实写得很好,但也不是圣经,学习的时候也可以多多质疑~
1.写防卫式定义和结尾
#ifndef _COMPLEX_
#define _COMPLEX_
……
#endif
2.写主体
- 数据放在private部分;
- public部分写构造函数,+=运算符函数,获取实部和虚部的函数(复数的实部和虚部写在private里,外部调用需要再写函数来实现);
- 构造函数通过初始化序列写,提高效率;
- 写函数时考虑函数类型,返回值,值的传递尽量使用引用的方式,函数中不改变参数值时记着写const。
#ifndef _COMPLEX_
#define _COMPLEX_
class complex{
public:
complex(double r = 0, double i = 0) : re(r), im(i) {
} //初始化序列,可以提高效率
complex& operator += (const complex&); //这里没写函数,在后面运算符重载部分写的
double real() const {
return re; }
double imag() const {
return im; } //获取复数的实部和虚部,不改变值,const提高效率,注意const的位置
private:
double re;
double im;
};
#endif
3.+=操作符的实现
class complex{
public:
complex(double r = 0, double i = 0) :