Ⅲ 函数

一、函数调用执行过程

1.fun(3.14)  //实参在函数里隐式转换为整数3

2.名字有作用域,对象有生命周期→函数体是一个语块,在这个语块里有新的作用域→在这个作用域里定义的形参&其他的定义都是局部变量,只有在函数执行时才会出现

3.局部静态对象

从这条语句执行,一直到程序结束才消失,就算其所在的函数消失了也没关系(厉害呀!)

4.函数声明

有名字,没内容,在头文件中声明,在源文件中定义

5.参数传递

每次调用函数时,都会重新创建形参,并用传入的实参对其进行初始化

当形参类型为引用→形参就是实参了;否则,就是把实参的值赋给形参

使用引用时,尽量使用常引用:引用的使用使形参和实参绑定到了一起,实参就很容易被改变,这不好

二、内联函数

 

三、带默认形参的函数

若调用给出实参,则形参采用实参值,否则调用默认参数值

 

声明时:不能一半赋值,一半没有

定义时:声明中有了int a=1,定义时直接使用,不用再定义了;必须从右到左依次定义,最左边可以有不定义的,但使用时就不能直接fun();了

使用时:中间不能空几个再继续赋值;

四、函数重载

1.重载:同一个东西对应不同的操作方式

 2.实现机理:虽然名字是一样的,但后面参数的个数&类型是不一样的,编译器根据那个区分(比C高级~~)

3.注意

五、函数模板

化简化简再化简\( ̄︶ ̄*\))

 

 1. 如果同时定义重载函数,将优先使用重载函数 ,若不能找到精确匹配,再使用函数模板

六、系统函数

猜你喜欢

转载自www.cnblogs.com/syzyaa/p/12677928.html