类中的成员变量类型可分为:
- 普通成员
- 常量成员 (const)
- 引用成员 (&)
- 静态成员 (static)
- 静态常量成员 (static const / const static)
成员的初始化有3中方式:
- 类内初始化
- 初始化成员列表
- 类外初始化
具体方式:
- 普通成员可以使用类内初始化和初始化成员列表进行初始化。
- 常量成员只能通过初始化成员列表进行初始化。
- 引用成员只能通过初始化成员列表进行初始化。
- 静态成员只能通过类外初始化进行初始化。
- 静态常量成员只能通过类外初始化进行初始化。
- 静态常量int成员还可以通过类内初始化进行初始化。
示例:
class Test
{
private:
Test(int& other)
: normal(0) // 初始化成员列表
, cNormal(0) // 初始化成员列表
, rNormal(other) // 初始化成员列表
{
}
private:
int normal = 0; // 类内初始化
const int cNormal;
int& rNormal;
static int sNormal;
static const int scNormal = 0; // 类内初始化
};
int Test::sNormal = 0; // 类外初始化 (最好放在cpp中)
const int Test::scNormal = 0; // 类外初始化 (最好放在cpp中)