《C++ Primer》--学习4

函数

函数基础

局部静态对象

局部静态对象 在程序的执行路径第一次经过对象定义语句时初始化,并且直到程序终止才被销毁,在此期间即使对象所在函数结束执行也不会对它有影响

指针或引用形参与 const

 main: 处理命令行选项

 列表初始化返回值

重载和 const 形参

重载和作用域

 重载对作用域的一般性质没有什么改变,如果在内层作用域中声明名字,它将隐藏外层作用域中声明的同名实体。在不同的作用域中无法重载函数名

 内联函数和constexpr函数

内联函数可以避免函数调用的开销。将函数指定为内联函数,通常就是将它在每个调用点上“内联地”展开。

 一般来说,内联机制用于优化规模较小,流程直接,频繁调用的函数

constexpr 函数

constexpr 函数是指用于常量表达式的函数。定义constexpr函数的方法与其他函数类似,但是返回类型以及所有形参的类型都得是字面值类型,而且函数体中必须有且只有一条return语句

 编译器把对 constexpr 函数的调用替换成其结果,为了能在编译过程中随时展开, constexpr 函数被隐式的指定为内联函数

constexpr 函数体内也可以包含其他语句,只要这些语句在运行时不执行任何操作

允许 constexpr 函数的返回值并非一个常量

 调试帮助

assert 预处理宏

 assert 宏定义在 cassert 头文件中

这个知识点先忽略掉吧,暂时用不到,用到的时候再看吧

函数指针

函数指针指向的是函数而非对象。

当我们把函数名作为一个值使用时,该函数自动转换成指针。

我们还可以直接使用指向函数的指针调用该函数,无须提前引用指针

给指针赋以恶搞nullptr 或者 值为 0 的整型常量表达式,表示该指针没有指向任何一个函数

 重载函数指针

当我们使用重载函数时,上下文必须清晰的界定到底应选用哪个函数,如果定义了指向重载函数的指针,编译器通过指针类型决定选用哪个函数,指针类型必须与重载函数中的某一个精确匹配

 函数指针形参

这两个声明语句声明的是同一个函数,在第一条语句中,编译器自动地将Func 表示的函数类型转换成指针

返回指向函数的指针

将 auto 和 decltype 用于函数指针类型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值