参考视频https://www.bilibili.com/video/BV1cb411B7fk?p=6
代码如下:
//
// Created by zlc on 2020/3/28.
//data一定放在private里面。
//参数尽可能使用pass by reference。//
//返回值尽可能使用return by reference。//
//在类的body中的函数,应该加const的要加const。//
//构造函数中的,尽量使用初始化列表initialization list
//
//防卫式声明
#ifndef UNTITLED_COMPLEX_H
#define UNTITLED_COMPLEX_H
class complex;
class complex {
public:
complex(double a=0,double b =0)
:re(a),im(b) //初值列
{ }
//函数在 class body 內定义完成,便自动 成為 inline 候选人
//在类成员函数的声明和定义中//const的函数不能对其数据成员进行修改操作。
//const的对象,不能引用非const的成员函数。
double real() const { return re;} //函数不需要改变里面的值,加const
double imag() const { return im;}
//操作符重载
complex& operator +=(const complex&);
private:
double re,im;
//对外宣称这是个友元,可以取私有的data
friend complex& __doapl(complex*,const complex&);
};
//右边加到左边,右边不会变,所以加个const ,因为左边不是临时变量,可以传引用
//返回值是 comple