首页 > 代码库 > c++primer

c++primer

http://en.cppreference.com/w/cpp/io/clog

clog 绑定到标准错误的 ostream 对象。默认情况下,写到 clog 时是带缓冲 的。通常用于将程序执行信息写入到日志文件中

C++ 中,把负值赋给 unsigned 对象是完全合法的,其结果是 该负数对该类型的取值个数求模后的值

L’a’   宽字符字面值

与其他变量不同,除非特别说明,在全局作用域声明的 const 变量是定义 该对象的文件的局部变量.

此变量只存在于那个文件中,不能被其他文件访问.通过指定 const 变更为 extern,就可以在整个程序中访问 const 对象.非 const 变量默认为 extern。要使 const 变量能够在其他的 文件中访问,必须地指定它为 extern

 

枚举成员是常量.枚举成员值可以是不唯一的


 

定义类时,通常先定义该类的接口,即该类所提供的操作。通过这些操作, 可以决定该类完成其功能所需要的数据,以及是否需要定义一些函数来支持该类 的实现

------------------------------------------------------------------------------------------------------------------

 

 using std::cin;

 

 using std::string;

getline 函数返回时丢弃换行符,换行符将不会存储

 

我们不知道 string::size_type 的确切类型,但可以知道它是 unsigned 型

虽然任何整型数值都可作为索引,但索引的实际数据类型却是类 型 unsigned 类型 string::size_type

#inclue<cctype>    处理字符

 

由 end 操作返回的迭代器并不指向 vector 中任何实际的元 素,相反,它只是起一个哨兵(sentinel)的作用,表示我们 已处理完 vector 中所有元素

size_t

在 cstddef 头文件中定义的机器相关的无符号整型,该类型足以保存最大 数组的长度

------------------------------------------------------------------------------------------------------------------

 

不允许数组直接复制和赋值

 

在用下标访问元素时,vector 使用 vector::size_type 作为下标的类型, 而数组下标的正确类型则是 size_t

使用 strn 函数处理 C 风格字符串

 

C++ 虽然不允许定义长度为 0 的数组变量,但明确指出,调用 new 动态创 建长度为 0 的数组是合法的

只有在必要时才使用后置操作符

(*p).foo === p->foo

++ 的优先级高于*操作符

C++ 保证:删除 0 值的指针是安全的

delete 之后,重设指针的值

只有使用 const_cast 才能将 const 性质转换掉

编译器隐式执行的任何类型转换都可以由 static_cast 显式完成

reinterpret_cast 通常为操作数的位模式提供较低层次的重新解释

 

避免使用强制类型转换

     int *ip;

     char *pc = reinterpret_cast<char*>(ip);

程序员必须永远记得 pc 所指向的真实对象其实是 int 型

如何看待 reinterpret_cast 的使用时非常重要。此类强制 转换总是非常危险的。相似地,使用 const_cast 也总是预示着设计缺 陷。设计合理的系统应不需要使用强制转换抛弃 const 特性。其他的强 制转换,如 static_cast 和 dynamic_cast,各有各的用途,但都不应 频繁使用