c++ Primer 第六章函数

本文详细探讨了C++中的函数基础,包括局部静态对象的作用、参数传递方式、返回类型、函数重载规则以及特殊语言特性如内联函数和constexpr的使用。同时,文章还讲解了如何管理数组形参,以及如何通过引用类型提高函数的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.1函数基础

  1. 局部静态对象static类型,使局部变量的生命周期贯穿函数调用及之后的时间;、

6.2参数传递

  1. 当形参是引用类型时,对应的实参被引用传递;实参的值被拷贝给形参时,形参实参是两个相互独立的对象,为值传递;在C++语言中也鼓励多使用引用代替指针访问函数外部的对象。
  2. 使用引用可以避免拷贝,还可以返回一个以上的结果;
  3. 顶层的const作用于对象本身,形参的顶层const会被忽略掉;                                                                                                      而对于引用而言,尽量使用常量引用形参,这样可以接受普通实参,const实参,字面值等;
  4. 管理数组形参(指针形参)的三种常用技术: 使用结束标记,使用标准库规范,显示传递一个表示数组大小的形参;且在函数不需要对数组元素进行写操作时,数组形参应指向const的指针;
  5. 为处理不同数量实参的函数,若实参类型相同,可以传递一个标准库类型initializer_list,若实参类型不同,可以编写可变参数模板;

6.3 返回类型和return语句

6.4 函数重载

  1. 不允许两个函数除了返回类型外其他所有的要素都相同;
  2. 顶层const不影响传入函数的对象,不能只用const去区分重载函数;

6.5 特殊语言特性

  1. 内联函数inline用于优化规模较小,流程直接,频繁调用的函数;
  2. constexpr
  3. assert
  4. NDEBUG

6.6函数匹配

6.7函数指针

  1.  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值