首页 > 编程语言 > 详细

[ C++ ] 勿在浮沙筑高台 —— 拾遗

时间:2020-05-17 12:03:21      阅读:54      评论:0      收藏:0      [点我收藏+]
  • explicit 主要用于处理一个参数的构造函数,使其不用于隐式类型转换(防止二义性)

  • operator->() C++设计 ->可以一直保留下去

  • 仿函数
    技术分享图片

    仿函数会隐式继承他们中的一个(详见 标准库课程)

  • namespace经验谈
    放一些全局的测试代码。。不用花时间去想新名字

  • template的实现:二次编译

  • 模板偏特化 —— 个数的偏
    技术分享图片

    从左至右绑定类型名,不可跳过。

  • 模板偏特化 —— 范围的偏 (例:特化指针类型)
    技术分享图片

  • 模板模板参数 —— 具体内容见C++11
    技术分享图片

    这个不算模板模板参数,因为模板类型已写死,没有变动的可能。

  • 可变参数模板 (variadic templates) C++11
    包pack:类型/类型参数...args typename...类型参数

    • 模板参数包(template parameters pack)
    • 函数参数类型包(function parameter types pack)
    • 函数参数包(function parameters pack)
      sizeof(args) 返回包内参数个数
      技术分享图片

    注意要重载一个无参空函数,因为包的size可能为0,而原本的参数必须大于等于1

  • auto C++11
    必须初始化。

  • 注意 foreach 方式改变数组值时,必须取引用!
    for( auto& elem : vec ){
    elem *= 3;
    }

  • 引用
    技术分享图片
    技术分享图片

  • const是函数声明的一部分

  • Inheritance + Composition 关系下的构造和析构
    构造:Base() -> Component() -> Derived()
    析构:~Derived() -> ~Component() -> ~Base()

  • 静态绑定:直接call
    动态绑定:查对象的vtbl,再call (指针+向上转型+调用虚函数)
    注意B b;A a = (A) b;这是静态绑定!

  • 当成员函数的const 和 non-const版本同时存在,const对象只会调const版本
    non-const对象只会调用non-const版本

[ C++ ] 勿在浮沙筑高台 —— 拾遗

原文:https://www.cnblogs.com/Cha2azzZ/p/12904401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!