专栏名称: tlanyan
目录
相关文章推荐
小易说钱  ·  这张纪念钞,终于涨了! ·  8 小时前  
普象工业设计小站  ·  4.7-4.14梦幻启程 ·  14 小时前  
普象工业设计小站  ·  前Nike旗下「潮牌卫衣」火遍欧美?!竟不到百元! ·  22 小时前  
普象工业设计小站  ·  家里的保鲜膜扔掉吧!万物皆可封的真空封口机, ... ·  3 天前  
创意铺子  ·  医院康复科,被打工人爆改成了健身房 ·  3 天前  
51好读  ›  专栏  ›  tlanyan

C++函数修饰符总结

tlanyan  · 掘金  ·  · 2019-02-03 09:21

正文

阅读 11

C++函数修饰符总结

转载请注明文章出处: tlanyan.me/cpp-functio…

C++ 博大精深,而且不断拥抱新的变化。本文简要总结一下 C++ 中函数的修饰符,其中部分在实际中极少用到。

按修饰符的位置分为函数名前与函数名后两种,以下分别做介绍。

函数名前

  1. 返回值类型

    返回值类型是 C++ 中定义函数的必备部分,这些修饰符包括 void (unsigned) int bool 等内置基本数据类型和自定义类型,也包括修饰返回值 const 关键字(如 const int* ),还包括 C++11 中新增的类型自动推导 auto 关键字。

  2. template

    template 关键字声明函数是 模板函数

  3. virtual

    virtual 关键字声明函数是 虚函数 ,可被子类覆盖。

  4. inline

    inline 关键字提示编译器应将函数 内联

  5. static

    static 修饰类的成员函数时指示函数是 静态成员函数 ,不从属于具体对象;修饰单独的函数时,限定函数的 可见范围为本文件内

  6. extern

    extern 关键字声明一个定义在 外部 的函数

  7. explicit

    explicit 关键字在 C++11 新增,只用于 构造函数 ,指定构造函数要 显式定义 ,不能 隐式转换

  8. friend

    friend 关键字声明类的友元函数,在函数内可 直接访问 对象的私有或受保护成员及成员函数。

  9. constexpr

    C++11 中新增,指示函数返回 常量表达式 (可以简单理解为返回 字面量 )。

函数名后

置于函数名后的修饰符有两种,第一种使用等号( = ),第二种直接修饰。

  1. 使用等号

    此类较为简单,总共有三种:

    1. =0 :只能用于虚函数,表示函数为 纯虚函数

    2. =default C++11 新增,只能用于编译器提供默认实现的 特殊成员函数 ,指示 使用默认实现

    3. =delete C++11 新增,只能用于编译器提供默认实现的 特殊成员函数 ,指示编译器应该 删除该函数的默认实现

  2. 直接修饰

    种类繁多,本人已知的修饰符包括:

    1. const

      表示函数不会修改对象(或者说调用期间对象不变),注意不包括 mutable 修饰的成员变量,可参考本人之前文章: C++中的mutable和volatile

    2. volatile

      类似于 const 修饰的函数,表示对象状态 可能随时会改变 const 修饰的函数内只能调用自身的 const 成员方法,同理 volatile 函数内也只能调用自身 volatile 成员函数。







请到「今天看啥」查看全文