C++知识点汇总:多态、转换、指针、引用、重载、模板

  • C++多态性
    • 一个接口,多种方法
    • 不同继承关系的类对象,去调用同一函数,产生的不同的行为
    • 继承中构成的条件
      • 调用函数的对象必须是指针或者引用
      • 被调用的函数必须是虚函数,且完成了虚函数的重写
        • 虚函数的重写(覆盖)
          • 派生类中有一个跟基类完全相同的虚函数
          • 不同作用域(分别在基类和派生类)
          • 函数名、参数、返回值都相同
          • 基类函数必须有virtual关键字

  • 静态多态
    • 编译器在编译期间完成多态的构建
    • 实现方式
      • 函数重载:包括普通函数的重载和成员函数的重载
        • 允许多个函数使用相同的名字,但是参数不同
        • 在同一个作用域
        • 返回值可以不同
      • 函数模板的使用

  • 虚函数
    • 允许基类的指针来调用子类的这个函数
  • 纯虚函数
    • 在基类中声明的虚函数,在基类中没有定义
    • 要求派生类要自己定义其实现方法
  • 动态多态
    • 运行时的多态,在程序执行期间判断所引用对象的实际类型,根据其实际类型调用相应的方法
  • 静态绑定(前期绑定):在程序编译期间确定了程序的行为
  • 动态绑定(后期绑定):在程序运行期间,根据类型确定程序的具体行为,调用具体的函数
  • 基类和派生类指针的相互赋值和转换
    • 在公有派生的情况下,派生类的指针可以直接赋值给基类指针
    • 即便基类指针指向的是一个派生类的对象,也不能通过基类指针访问基类没有而派生类中有的成员
    • 基类的指针不能赋值给派生类的指针,但是通过强制类型转换,也可以将基类指针强制转换成派生类指针后再赋值给派生类指针。
  • C++类型转换
    • const_cast

      去掉类型的const或volatile属性

      static_cast

      无条件转换,静态类型转换

      dynamic_cast

      有条件转换,动态类型转换,运行时检查类型安全(转换失败返回NULL)

      reinterpret_cast

      仅重新解释类型,但没有进行二进制的转换

                

  • 操作符重载
    • 同一个运算符,对不同类型的操作数,所发生的行为不同

  • 操作符的重载就是函数的重载,在程序编译时把指定的运算表达式转换成对运算符的调用,把运算的操作数转换成运算符函数的参数,根据实参的类型决定调用哪个操作符函数

  • C++模板
    • 模板使程序员能够快速建立具有类型安全的类库集合和函数集合,它的实现,方便了大规模的软件开发
    • 函数模板

  • 类模板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值