c++复习(三)

第三章 函数
常量定义:const float PI=3.1415

定义函数:讲一个模块的算法,用c++语言描述出来
函数返回值:需要返回的计算结果

函数定义语法:
类型标识符 函数名(形参)——type name,相当于一个局部变量
{
语句
return 计算结果**(计算结果的类型由类型标识符决定,若为void,则不用写return语句)**
}

函数调用之前需要声明,告诉编译器我即将调用一个函数
函数原型声明
类型标识符 被调用函数名(含类型说明的形参表)
函数调用
函数名 (实参列表)——已经占有存储空间
递归调用:函数自己调用自己

参数传递:
在参数调用时才分配形参的存储单元
实参可以是常量,变量或表达式
实参类型必须与形参相符
值传递是传递参数值,即单向传递
引用传递可以实现双向传递
常引用作参数可以保障实参数据的安全(开销比传值小)

引用类型
引用(&)是标识符的别名
例如:int i,j;
int &ri=i;//定义int引用ri,并初始化为变量I的引用,引用一旦被指定,就不能指向其他对象,引用可以作为形参
swap函数交换两个函数值时,实参初始化形参后,子函数执行完直接消亡,没有传回主函数中,主函数输出的值未改变,所以需要引用传递swap(int& a,int& b);在定义形参被定义时,并没有被分配存储空间,在函数调用过程中才被落实。

含有可变参数的函数,c++提供了两种方法
如果所有的实参类型相同,可以传递一个名为initializer_list(是一种标准库类型,用于表示某种特定类型的值得数组,该类型定义在同名的头文件中)的标准库类型
如果是惨的类型不同,我们可以编写可变参数的模板

内联函数
能够提高运行效率,希望编译器编译时用函数体里面的语句去替换函数调用表达式(表面是函数调用,实际有编译器进行简单处理)
inline 声明,注意:
内联函数体内不能有循环语句和switch语句
函数的定义必须出现在函数第一次被调用之前
地内联函数不能进行异常接口声明

consterpr函数:
例:consterpr intget_size{return 20}

带默认参数值的函数
可以预先设置默认的参数值,调用时如果给出实参,则采用实参,否则采用预先设置的形参值
默认参数值说明顺序:
默认形参前不能有无默认值的形参,调用时实参与形参的结合必须从左往右

函数重载多态性,静态机制
c++允许功能相近的函数在相同的作用域内以相同的函数名声明,从而行成重载,例:计算不同类型数据的运算结果
形参个数可以不同
功能相同,函数名相同,类型不同,参数个数不同

c++系统函数
求平方根函数sqrt,求绝对值函数abs,使用系统函数时要包含相应的头文件cmath

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章