文章目录

  • 1.函数体
  • 2.函数返回类型

1.函数体

  1. 隐式返回:没有写return,常见的就是void函数。main函数是比较特殊的函数,所以他虽然是int main(),但是最后也可以不返回,也就是隐式返回,此时默认返回是0。
  2. 返回初始化列表需要注意:
  3. 返回自动自动对象的引用或指针(和上面的initializer_list错误原因相同):
  • 非法:使用自动对象
    - 合法:使用局部静态对象,提高引用对象或指针的声明周期
  1. 返回值优化

    返回值优化,是把x直接在res上进行构造,而不用进行两次拷贝构造。

另外,C++17对返回临时对象的强制优化,其实就是把上面的返回值优化进行强制实施,因为C++17之前不同的编译器优化与否不一定,但是C++17中标准就确定一定要优化。
临时对象:

Str( fun()
{return Str{};   // 临时对象,C++17一定会优化
}

2.函数返回类型

  1. 函数返回类型位于函数头后部:
  2. 返回类型自动推导
  3. 结构化绑定:C++17引入的语法糖
  4. C++17 nodiscard属性:

C++基础第6章:函数(2)——函数体、函数返回类型相关推荐

  1. C语言,函数没有return,返回类型就是void的么?

    函数没有return,返回类型不一定是void的. 也就是说,函数的返回类型还是要看函数的声明和定义. 那么定义一个具有返回值类型的函数,但是不写return,或者该函数中某些分支忘记return了, ...

  2. Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  3. C++基础::语法特性::函数重写(override)与协变返回类型(covariant return type)

    函数重写 在进行本文的协变返回类型(covariant return type)的讨论之前,不妨先重新温故C++关于函数重写的语法规则.协变返回类型与函数重写有着千丝万缕的联系. 首先明确函数重载(o ...

  4. C语言基础10——指针进阶。字符指针、指针数组、数组指针、函数指针、函数指针数组、回调函数、数组名详解、杨氏矩阵、字符串旋转

    目录 字符指针 指针数组 数组指针 数组传参.指针参数 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 练习 数组名的意义 指针笔试题 字符指针 字符指针的另一种使用方式 #include ...

  5. python中factor函数_Python入门-函数

    函数 在维基百科上函数式这样描述的: 函数在数学中为两集合间的一种对应关系:输入值集合中的每项元素皆能对应唯一一项输出值集合中的元素. 此处的函数区别于我们数学上的函数,在编程世界中,函数(Funct ...

  6. JavaScript【流程控制】【数组】【函数】【函数作用域】经典!!

    表达式和语句 表达式 一个表达式可以产生一个值,有可能是运算.函数调用.有可能是字面量.表达式可以放在任何需要值的地方. 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句.一个程序有很多 ...

  7. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  8. 函数表达式和函数定义

    匿名函数:函数如果没有名字,就是匿名函数 * 函数的另一种定义方式 函数表达式: 把一个函数给一个变量,此时形成了函数表达式 var 变量=匿名函数; 例子: * var f1=function () ...

  9. 函数定义、函数声明、函数原型

    函数定义.函数声明.函数原型:变量声明.变量定义:类型声明.类型定义 1.函数定义.函数声明.函数原型 2.变量声明.变量定义 3.类型声明.类型定义 1.函数定义.函数声明.函数原型 函数声明中不但 ...

最新文章

  1. php 声明字符串的三种方式
  2. docker omv 防火墙_OpenMediaVault(OMV)配置Docker
  3. Android 横竖屏切换时 Dialog 布局自适应
  4. Nginx----进阶
  5. 深入浅出理解HOG特征---梯度方向直方图
  6. 容器编排技术 -- Kubernetes Nodes
  7. mysql数据库密码为空_注意MySQL 数据库用户root密码为空_MySQL
  8. 使用批处理设置、启动和停止服务
  9. 绘制直方图的方法大全
  10. 刷脸支付系统源码定制开发
  11. 新库上线 | CnOpenDataA股上市公司裁判文书数据
  12. c语言程序设计精髓第五章编程题
  13. 基于SSM的大学生创业众筹平台网站毕业设计源码212000
  14. C++大法:举世闻名之BOOST大法精华浅析(三)内存管理库(小白piao分享)
  15. 华为harmonyos2.0哪里下载,华为HarmonyOS最新官方版-华为HarmonyOS2.0最新下载地址-游侠软件下载...
  16. css之background-attachment属性
  17. KITTI数据真值处理
  18. 江南大学计算机专业就业率,江南大学这些本科和硕士专业就业率100%!2019江大毕业生就业报告...
  19. 洛谷P1823 [COI2007] Patrik 音乐会的等待
  20. PyCharm2020介绍

热门文章

  1. 一个有意思的github项目“狗屁不通文章生成器”
  2. uniapp 生成二维码
  3. 清华大学公开课线性代数2——第6讲:伪逆
  4. 互联网大厂面试官:推荐系统最经典的 排序模型 有哪些?你了解多少?
  5. Java 文件生成本地
  6. 自然语言处理笔记5-哈工大 关毅
  7. Web3j监听功能代码研究
  8. ReportViewer单据票据打印,自动分页,每页显示固定行数,每页都显示表头
  9. Linux下安装libsodium,启用ss的chacha20高级加密
  10. 单片机基础入门:单片机电源电路设计,搞定电源不求人