C++基础第6章:函数(2)——函数体、函数返回类型
文章目录
- 1.函数体
- 2.函数返回类型
1.函数体
- 隐式返回:没有写
return
,常见的就是void
函数。main
函数是比较特殊的函数,所以他虽然是int main()
,但是最后也可以不返回,也就是隐式返回,此时默认返回是0。 - 返回初始化列表需要注意:
- 返回自动自动对象的引用或指针(和上面的
initializer_list
错误原因相同):
- 非法:使用自动对象
- 合法:使用局部静态对象,提高引用对象或指针的声明周期
- 返回值优化
返回值优化,是把x
直接在res
上进行构造,而不用进行两次拷贝构造。
另外,C++17对返回临时对象的强制优化,其实就是把上面的返回值优化进行强制实施,因为C++17之前不同的编译器优化与否不一定,但是C++17中标准就确定一定要优化。
临时对象:
Str( fun()
{return Str{}; // 临时对象,C++17一定会优化
}
2.函数返回类型
- 函数返回类型位于函数头后部:
- 返回类型自动推导
- 结构化绑定:C++17引入的语法糖
- C++17 nodiscard属性:
C++基础第6章:函数(2)——函数体、函数返回类型相关推荐
- C语言,函数没有return,返回类型就是void的么?
函数没有return,返回类型不一定是void的. 也就是说,函数的返回类型还是要看函数的声明和定义. 那么定义一个具有返回值类型的函数,但是不写return,或者该函数中某些分支忘记return了, ...
- Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数
参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...
- C++基础::语法特性::函数重写(override)与协变返回类型(covariant return type)
函数重写 在进行本文的协变返回类型(covariant return type)的讨论之前,不妨先重新温故C++关于函数重写的语法规则.协变返回类型与函数重写有着千丝万缕的联系. 首先明确函数重载(o ...
- C语言基础10——指针进阶。字符指针、指针数组、数组指针、函数指针、函数指针数组、回调函数、数组名详解、杨氏矩阵、字符串旋转
目录 字符指针 指针数组 数组指针 数组传参.指针参数 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 练习 数组名的意义 指针笔试题 字符指针 字符指针的另一种使用方式 #include ...
- python中factor函数_Python入门-函数
函数 在维基百科上函数式这样描述的: 函数在数学中为两集合间的一种对应关系:输入值集合中的每项元素皆能对应唯一一项输出值集合中的元素. 此处的函数区别于我们数学上的函数,在编程世界中,函数(Funct ...
- JavaScript【流程控制】【数组】【函数】【函数作用域】经典!!
表达式和语句 表达式 一个表达式可以产生一个值,有可能是运算.函数调用.有可能是字面量.表达式可以放在任何需要值的地方. 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句.一个程序有很多 ...
- Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]
1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...
- 函数表达式和函数定义
匿名函数:函数如果没有名字,就是匿名函数 * 函数的另一种定义方式 函数表达式: 把一个函数给一个变量,此时形成了函数表达式 var 变量=匿名函数; 例子: * var f1=function () ...
- 函数定义、函数声明、函数原型
函数定义.函数声明.函数原型:变量声明.变量定义:类型声明.类型定义 1.函数定义.函数声明.函数原型 2.变量声明.变量定义 3.类型声明.类型定义 1.函数定义.函数声明.函数原型 函数声明中不但 ...
最新文章
- php 声明字符串的三种方式
- docker omv 防火墙_OpenMediaVault(OMV)配置Docker
- Android 横竖屏切换时 Dialog 布局自适应
- Nginx----进阶
- 深入浅出理解HOG特征---梯度方向直方图
- 容器编排技术 -- Kubernetes Nodes
- mysql数据库密码为空_注意MySQL 数据库用户root密码为空_MySQL
- 使用批处理设置、启动和停止服务
- 绘制直方图的方法大全
- 刷脸支付系统源码定制开发
- 新库上线 | CnOpenDataA股上市公司裁判文书数据
- c语言程序设计精髓第五章编程题
- 基于SSM的大学生创业众筹平台网站毕业设计源码212000
- C++大法:举世闻名之BOOST大法精华浅析(三)内存管理库(小白piao分享)
- 华为harmonyos2.0哪里下载,华为HarmonyOS最新官方版-华为HarmonyOS2.0最新下载地址-游侠软件下载...
- css之background-attachment属性
- KITTI数据真值处理
- 江南大学计算机专业就业率,江南大学这些本科和硕士专业就业率100%!2019江大毕业生就业报告...
- 洛谷P1823 [COI2007] Patrik 音乐会的等待
- PyCharm2020介绍