• type alias+noexcept+override+final


    Type alias类型化名–类似于typedef

    在这里插入图片描述

    (1)typedef void(func)(int,int)说明func是一个函数指针,与下面的using func=void()(int,int)等价,但是using更加的明显,凸显func是一个类型;
    (2)右侧也是等效,using value_type=T等价于typedef T value_type;
    函数名就是函数指针

    using

    在这里插入图片描述

    (1)using namespace std;打开名称空间;或者using std::cout;
    (2)using _Base::M_allocate;指定去哪里找;后续就可以只写M_allocate;
    (3)第三种就是类型化名,using func=void(*)(int,int);

    noexcept 不丢出异常

    在这里插入图片描述
    (1)在函数void foo()后面加上noexcept就是表明,程序员保证这个函数不会出现异常;还可以再加上条件noexcept(true)在符合这个条件下,不会出现异常;是可以加上条件的;
    (2)下面框中,表明这个swap保证不丢异常,在x.swap(y)不丢异常的情况下;
    (3)出现异常会往调用函数那里寻找处理程序,不然就会一直往回追溯;如果没有找到就会触发std:;terminate()继而触发std:;abort()程序中断;

    在Move中必须加上noexcept!!!

    在这里插入图片描述

    (5)因为vector有成长扩容两倍的过程,每次都需要调用复制构造来到新的空间,如果有Move的话,就会执行move操作,会更加效率;
    (6)你写出move必须通过noexcept通知vector,vector才会放心调用Move;如果没noexcept,vector就不会调用Move;

    override 改写应用在虚函数身上

    在这里插入图片描述
    当没有override时,重写虚函数时,当你写错编译器也不会报错,认为是新的一个虚函数,但是加上override之后,写错就会进行报错;

    final关键字

    在这里插入图片描述
    (1)修饰类;给父类写上final就说明自己是继承的最后一级,再有类继承就会报错;
    (2)修饰虚函数;就不可以再被子类重写;

  • 相关阅读:
    MYSQL---基础篇
    简单工厂模式
    关系模型知识点总结(2)—— 关系完整性约束&关系操作基础
    读 RocketMQ 源码,学习并发编程三大神器
    基于java的在线物流管理系统【原创】
    基于B2B平台的医疗病历交互系统
    dnslog注入_dnslog盲注
    javaEE初阶---博客系统(前后端分离)
    Golang 函数 不定参数
    如何自己开传奇单机架设超详细图文教程
  • 原文地址:https://blog.csdn.net/weixin_44570263/article/details/126643629