0x01.类型转换
-
转换函数
- 返回类型可以不写
- 无参数
- const 成员函数
-
构造函数:non-explicit-one-argument constructor
explicit constructor
-
前两者二义性
-
static_cast<T>
0x02.智能指针
-
pointer-like class
- 封装指针加上引用计数
- 重载操作符:operator*
- 重载操作符: operator->
-
迭代器(主要用来遍历容器):还要重载前置/后置的自增(++)和 自减(--)操作符(用来移动指针)
- 重载操作符:operator*
- 重载操作符: operator->比较特殊
-
标准库只能指针比较
- auto_ptr
- shared_ptr
- weak_ptr
- unique_ptr
0x03.仿函数(function-like classes)
- 重载操作符 operator()
- 标准库中仿函数的 base class
- 空的 class 和 struct 大小为 1
0x04.命名空间 namespace
- 全局的函数和变量放在命名空间中,避免名字冲突
0x05.模板
-
class template
- typename 与 class
- 函数编译期还是运行期生成?
-
函数模板 function template
编译器进行实参推导
-
成员模板 member template
pair
网友评论