zoukankan      html  css  js  c++  java
  • C++11:24final和override关键字

    24、final和override关键字

    0、课前秀

    • 抛开别的语言不谈,就重新引入两个关键字finaloverride
    • final的意思是最终的,所以可以理解为最后的子类了。

    1、final关键字

    • 用于限制某个类不能被继承,或者某个虚函数不能被重写,修饰函数,final只能修饰虚函数,并且要放到类或者函数的后面。
    • final的用法
    struct A
    {
        //A::foo is final 限定该虚函数不能被重写
        virtual void foo() final;
        //Error: non-virtual function cannot be final,只能修改虚函数
        void bar() final;
    };
    
    struct B final : A  //struct B is final
    {
        //Error: foo cannot be overridden as it's final in A
        void foo();
    };
    
    struct C : B //Error: B is final
    {
        
    };
    

    2、override关键字

    • 确保在派生类中声明的重写函数与基类的虚函数有相同的签名,同时也明确表明将会重写基类的虚函数,还可以防止因疏忽把本来想重写基类的虚函数声明成重载。
    • 保证重写虚函数的正确性,又提高代码的可读性。关键字要放到方法后面
    • 代码示例
    struct A
    {
        virtual void func() {}
    };
    
    struct D : A{
        //显式重写
        void func() override
        {
            
        }
    };
    

    ReadMe

    • 语法上get到了,但具体的应用场景还是再实践。20200511看完第1版,《深入应用C++11》7.3内容。
  • 相关阅读:
    最大流——poj3308 (模板)
    混合边的欧拉路径——poj1637 最大流
    JBPM FAQ
    spring 读取资源文件方法
    JBPM使用assignHandler进行用户分派思路
    直接修改jpbm xml流程定义字段的方法
    转 java 读取文件的字符集
    JAVA实现AD验证
    找到一篇jbpm session closed解决办法的文章
    dwr 读取cookie
  • 原文地址:https://www.cnblogs.com/fewolflion/p/12968629.html
Copyright © 2011-2022 走看看