9.4不同的数据成员类型
1.静态数据成员
在声明变量时添加static
关键字
不仅要在类定义中列出 static 类成员,还需要在源文件中为其分配内存,通常是定义类方法的那个源文件。在此还可初始化 static 成员,但注意与普通的变量和数据成员不同,默认情况下它们会初始化为0。static 指针会初始化为 nullptr.
class Spreadsheet
{
private:
static size_t ms_counter;
};
size_t Spreadsheet::ms_counter;
1.1内联变量
从C++17开始,可将静态数据成员声明为inline
。这样做的好处是不必在源文件中为它们分配空间。
class Spreadsheet
{
private:
static inline size_t ms_counter;
};
1.2在类方法内访问静态数据成员
略
1.3在方法外访问静态数据成员
略
2.const static数据成员
略
3.引用数据成员
记住,在初始化一个引用后,不能改变它指向的对象,因此无法在赋值运算符中对引用赋值。这意味着根据使用情形,可能无法为具有引用数据成员的类提供赋值运算符。如果属干这种情况,通常将赋值运算符标记为删除。
最后,引用数据成员也可被标记为 const。