C++基础学习:函数

函数基础
形参与实参:实参是形参的初始值,比如 int a = 10 中a是形参,而10是实参。
函数返回类型:不能是数组或者函数类型,但可以是指向数组或函数的指针。

局部对象(名字有作用域,对象有生命周期)
局部变量的生命周期依赖于定义的方式:
自动对象:我们把只存在于块执行期间的对象称为自动对象,对于这种普通局部变量对应的对象而言,但函数的控制路径经过变量定义语句时创建该对象,当到达定义所在的块末尾时销毁它。
局部静态对象:有必要将局部变量的生命周期贯穿函数调用及之后的时间,可以将局部变量定义成static类型从而获得这样的对象。

参数传递
形参初始化的机理与变量初始化一样,拷贝大的类类型对象或者容器对象比较低效,甚至有的类类型不支持拷贝操作,这是可用引用形参访问这类对象,如果函数无须改变引用形参的值,最好将其声明为常量引用(const)。

函数重载
如果同一个作用域内的几个函数名字相同但形参列表不同,这样我们称之为重载函数。
void a(int x)
void a(int y)
void a(int x, int y)
上面这几种都可称之为重载,不论是形参个数、名字、类型不同都可以。下面这种是错误的重载,重载是表现在形参的不同,并不是返回类型不同。
string func(const a&)
bool func(const a&)
重载与作用域:重载对作用域的一般性质没有什么改变,如果我们在内层作用域中声明名字,它将隐藏外层作用域中声明的同名实体。

三大语言特性(默认参数、内联函数、constexpr函数)
默认参数:在某些函数中有这样一种形参,在函数很多次调用中它们都被赋予一个相同的值,我们把这个反复出现的值称为函数的默认实参。
int s1(int a = 2, int b = 19)
在给定的作用域中一个形参只能被赋予一次默认实参,局部变量不能作为默认实参。
内联函数:在函数的返回类型前加上关键字inline

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值