美文网首页
Geekband C++ Week4 Notes

Geekband C++ Week4 Notes

作者: current | 来源:发表于2016-03-23 01:26 被阅读15次
  • 转换函数

    • 类型转换操作符

      • 用于任何需要类型转换的场合
      • 应该是一个const操作符,类型转换操作对实例本身造成影响是不合理的
      • 隐式类型转换只有在操作符参数表不匹配的情况下发生
    • explicit关键字

      • explicit关键字只能作用于只有一个参数的构造函数(有默认值的参数不计入参数数量)
      • 对于non-explicit版本的构造函数,如果同时提供了类型转换操作符,有可能会在后续使用中引发二义性
      • explicit禁止了隐式类型转换,其他类型的实例不会隐式转换为一个提供了explicit构造函数的类实例
  • Pointer-like class

    • 如标题所述,这种类型的行为和『指针』类似
    • 智能指针
      • 可以防止内存泄露的情况出现(how & why?)
      • std::unique_ptr和老的auto_ptr基本一致
      • std::shared_ptr/std::weak_ptr,强弱引用的问题
      • boost::scoped_ptr
    • 迭代器
  • Function-like class

    • 仿函数
  • namespace

    • 主要防止名字污染
    • 在头文件里面使用using namespace显然不是一个很好的实践,因为会污染所有直接或间接include这个头文件的文件的名字空间
  • template

    • 模板的坑太深,不展开讲
    • 需要注意的一点,模板的类型绑定是在编译期完成的
    • 模板会造成代码膨胀,每绑定一种不同的类型组合就会产生一份新代码
    • 模板类需要写在一个hpp里面
    • class template
    • function template
    • member template
    • 特化/偏特化
      • 类型推导时优先匹配特化过的模板
      • 个数偏特化/范围偏特化
    • 模板的模板参数

相关文章

  • Geekband C++ Week4 Notes

    转换函数类型转换操作符用于任何需要类型转换的场合应该是一个const操作符,类型转换操作对实例本身造成影响是不合理...

  • GeekBand C++ Week4 notes

    A.导读 泛型编程和面向对象编程虽然分层不同思维,但是它们正式C++的技术主线。随意我们也要讨论模版。 test....

  • GeekBand C++ Week1 Notes

    GeekBand C++ Week1 Notes A.OOP-面向对象编程 1基础:C语言 -变量variable...

  • GeekBand C++ WEEK4

    1. 对象模型 首先我们需要知道的是多态,动态绑定,**虚函数 **其实讲的是同一件事情; c++ 编译器看到函数...

  • GeekBand C++ week4

    Object Model 对象模型 在代码层面不可见,而是出现在实现层面。 关于vptr(虚指针)和vtbl(虚表...

  • Geekband C++ Week4 Homework

    首先需要明确的是,对象模型不属于C++标准的一部分,如何实现由编译器厂商决定,不过目前主流厂商的编译器实现的都类似...

  • GeekBand C++ Week7 Notes

    Week7 Notes 容器Containers Stack 也是一个线性容器,是一种先进后出FILO的数据结构,...

  • GeekBand C++ Week8 notes

    Week8 Notes 变易算法: copy:对象拷贝 templateinlineOutIt copy(InIt...

  • GeekBand C++ Week9 Notes

    C++设计模式 为了理解松耦合设计思想,掌握面向对象设计原则 什么是设计模式? 是一种解决方案的核心,可以避免重复...

  • GeekBand C++ Week10 Notes

    工厂方法:factory method 其实是当我们在类里面要实例化一个类的时候,有可能有多种情况出现,需要创建的...

网友评论

      本文标题:Geekband C++ Week4 Notes

      本文链接:https://www.haomeiwen.com/subject/niullttx.html