在头文件中定义一个 constant char*-based string(基于 char* 的字符串常量)时,你必须写两次 const: const char * const authorName = "Scott Meyers";
在头文件中定义一个 constant char*-based string(基于 char* 的字符串常量)时,你必须写两次 const: const char * const authorName = "Scott Meyers";
,一个可接受的替代方案被亲切地(并非轻蔑地)昵称为 "the enum hack"。
,一个可接受的替代方案被亲切地(并非轻蔑地)昵称为 "the enum hack"。这项技术获得以下事实的支持:一个 enumerated type(枚举类型)的值可以用在一个需要 ints 的地方。
如果 const 出现在星号左边,则指针 pointed to(指向)的内容为 constant(常量);如果 const 出现在星号右边,则 pointer itself(指针自身)为 constant(常量);如果 const 出现在星号两边,则两者都为 constant(常量)。
有时,即使是 built-in types(内建类型),initialization list(初始化列表)也必须使用。比如,const 或 references(引用)data members(数据成员)是必须 be initialized(被初始化)的,它们不能 be assigned(被赋值)(参见 Item 5)。
C++ 并非变幻莫测的方面是一个 object(对象)的数据被初始化的顺序。这个顺序总是相同的:base classes(基类)在 derived classes(派生类)之前被初始化(参见 Item 12),在一个 class(类)内部,data members(数据成员)按照它们被声明的顺序被初始化。