GeekBand.重学C++(3)

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容