一、设计一个类需要注意什么?
1、数据 封装在private里面
2、参数 尽可能以refrence传递
ps:要不要加const? 看状况
3、返回值 尽可能以reference传递
ps:先在脑子里思考 以引用来传可不可以,当然如果不可以的话就按照value传递
4、在类 的body里面的函数 应该要加const的就要加。
ps:如果不加的话使用者在用的时候,编译器会报错,他会埋怨你——你就是class的设计者,你设计的不好。
5、构造函数的 Initialization list(初值列,初始列)要尽可能去用它。。(看下面截图)
ps:因为这是在初始化的时候就赋值了,比单独再构造函数主体里赋值更节省资源充分利用了构造函数的特性
二、C++里的重载 操作符就是一个函数,是可以让我们重新定义的
拿复数(分为实部和虚部)来说,如果我单独定义一个plus函数来操作虚部和实部的相加,还不如直接重载操作符方便呢。。
所以那好吧,C++允许大家重写操作符来改变它原来定义
傳遞者無需知道接收者是以 reference 形式接收
注意:临时对象 这种用法在标准库里很常见
return complex();
int a= int();
In this context,
int a = int(); // 1)
it value-initializes
a
, so that it holds value0
. This syntax does not require the presence of a constructor for built-in types such asint
.Note that this form is necessary because the following is parsed as a function declaration, rather than an initialization:
它对a进行值初始化,使其保持值为0。此语法不需要内置类型(例如int)的构造函数。 请注意,这种形式是必需的,因为以下内容被解析为函数声明,而不是初始化: