零. 绪论
- 左值和右值
- 概念上,右值对应的是函数返回的临时对象,左值对应的是可指涉的对象(通过名字、指针或左值引用)
- 甄别方式:能取得地址的为左值。
- 右值引用类型的形参,该形参本身也是左值。
- 任何形参都是左值
- 若某对象是依据同一类型的另一对象初始化出来的,则该新对象称为原对象的一个副本。右值的副本通常由移动构造函数创建,左值的副本通常由复制构造函数创建。
#define由预处理器进行处理,因此可能不被编译器看见。当获得编译器错误信息时无法追踪(通过#define定义的变量可能未进入记号表)。而使用const对象则不会出现这样的问题。
并且,#define无法限制作用域。当需要定义class的专属常量时,可以通过const定义,并且为了保证此常量至多一个实体,可以将其定义为static类型。