有序型的 const 静态数据成员可以在类体中用一常量值初始化 例如 如果
决定用一个字符数组而不是 string 来存储账户的姓名 那么我们可以用 int 型的 const 数据成
员指定该数组的长度 例如
// 头文件
class Account {
// ...
private:
static const int nameSize = 16;
static const char name[nameSize];
};
// 文本文件
const int Account::nameSize; // 必需的成员定义
const char Account::name[nameSize] = "Savings Account";
在类中const 修饰成员,则该成员属于对象范畴,所以不可在定义时候初始化,否则不同对象就是同一个值了(cosnt不能修改)。实际staic const 就是针对这个情况 ,从而简化,减低内存。
引:要深入理解 static const 引用、指针等概念。
1)static: 限定符,在类中含义。
静态数据成员的 惟一性 本质 独立于类的任何对象而存在的惟一实例 使它能够
以独特的方式被使用 这些方式对于非 static数据成员来说是非法的
2)const 、volatile 、mutable 是修饰限定符(specifier),用来修饰变量,函数、对象等,来表示特殊含义。
3)引用是别名
4) 指针是一个数据类型。
以上分析还不够,不可知从语言角度,要从编译器角度看
注:
有序类型,又称“整值类型”,指char short int long 和它们的unsigned版本,不含float和double。本书勘误表中,把“有序类型”一律改为“整值类型”,可能就是为了避免误解。 |
阅读(2935) | 评论(0) | 转发(0) |