类的其他特性
类成员
- 用来定义类型的成员必须先定义后使用
令成员作为内联函数
- 当函数声明和定义都在类当中,那么函数将会隐式将成员函数编程内联函数
- 如果声明类当中,定义在类外,那么需要显示的使用inline,才能将函数编译成内联函数,inline 可以放在声明处也可以放在定义处。
成员函数也可以重载
可变数据成员(mutable)
当变量的声明中加入了mutable关键字,
有时我们希望能修改类的某个数据成员,即使在一个const 成员函数当中
类内初始化
只能用 = 号的初始化形式或则或花括号{}括起来的直接初始化形式。不能使用小括号()
*this
返回*this的函数
如果返回类型是引用,那么返回的就是对象本身,如果返回的类型不是引用,返回的就是对象的副本。
从const成员函数返回*this
- const 成员函数 *this 也是一个const对象
- 一个const 成员函数如果以引用的形式返回*this,那么它的返回类型将是常量引用。
const 重载
- 常量对象不可以调用非常量版本的函数(非常量版本的函数可能会改变对象本身的值)