1. C++ 标准并未定义 signed 类型如何用位来表示,而是由每个编译器自由决定如何表示 signed 类型。这些表示方式会影响 signed 类型的取值范围。8 位 signed 类型的取值肯定至少是从 -127 到 127,但也有许多实现允许取值从 -128 到 127。
  2. 在字符字面值前加 L 就能够得到 wchar_t 类型的宽字符字面值。如:
    L'a'
  3. 正如存在宽字符字面值,如
    L'a'
    也存在宽字符串字面值,一样在前面加“L”,如
    L"a wide string literal"
    宽字符串字面值是一串常量宽字符,同样以一个宽空字符结束。
  4. 除了关键字,C++ 标准还保留了一组标识符用于标准库。标识符不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母。有些标识符(在函数外定义的标识符)不能以下划线开头。
  5. const 变量默认为 extern。要使 const 变量能够在其他的文件中访问,必须地指定它为 extern

  6. const 引用只能绑定到与该引用同类型的对象。const 引用则可以绑定到不同但相关的类型的对象或绑定到右值。

  7. 不能改变枚举成员的值。枚举成员本身就是一个常量表达式,所以也可用于需要常量表达式的任何地方。

  8. 每个 enum 都定义了一种新的类型。和其他类型一样,可以定义和初始化 Points 类型的对象,也可以以不同的方式使用这些对象。枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其他对象来进行:

    Points pt3d = point3d; //  ok: point3d is a Points enumerator
    Points pt2w = 3;       //  error: pt2w initialized with int
    pt2w = polygon;        //  error: polygon is not a Points enumerator
    pt2w = pt3d;           //  ok: both are objects of Points enum type

    注意把 3 赋给 Points 对象是非法的,即使 3 与一个 Points 枚举成员相关联。

  9. 因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。对于头文件不应该含有定义这一规则,有三个例外。头文件可以定义类、值在编译时就已知道的 const 对象和 inline 函数(第 7.6 节介绍 inline 函数)。这些实体可在多个源文件中定义,只要每个源文件中的定义是相同的。
posted on 2011-05-02 17:41  cppfans  阅读(168)  评论(0编辑  收藏  举报