您的位置:首页 > 编程语言 > C语言/C++

C_PlusPlus学习笔记 - 2_函数 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)

2014-06-24 00:24 656 查看
2——函数

C++继承了C的全部语法,函数也是其中之一。
函数是模块划分的基本单位,是对处理对象的一种抽象。
在面向对象程序设计中是对功能的抽象。
调用其他函数的函数叫做主调函数。 被其他函数调用的叫做被调函数。

函数定义:
形式参数:形参的作用是实现主调函数和被调函数之间的联系。
main函数也可以有形参和返回值,其形参为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。
函数在没有被调的时候是静止的,此时形参只是一个符号,它标志着形参出现的位置应该有一个什么类型的数据。
函数在被调用的时候才执行,也是在被调用时将实际参数赋予形参。

函数的执行过程:
一个C++程序经过编译以后生成可执行代码,形成.exe 文件,存放在外存储器中。程序被启动时,首先从外存储器将代码装载到内存的代码区,然后从入口函数(main)开始执行。程序执行过程中,如果遇到了对其他函数的调用,则暂停当前函数的执行,保存下一条指令的地址,并且保存现场,然后转到子函数的入口地址,执行子函数。

嵌套调用
fun1 --》 fun2 --》fun3

递归调用
fun1 --》 fun1 --》。。。

函数的参数传递:
在函数未被调用时,函数的形参并不占有实际的内存空间,也没有实际的值,只有在函数调用的时候才为形参分配存储单元,并且将实参和形参结合。函数的参数传递指的就是形参与实参的结合。形实结合的方式有值调用和引用调用。(实参可以是常量,变量,表达式,但是类型必须与形参相同)
1. 值调用:
是指发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将值传递给形参)。这一过程参数传递为单向传递,一旦形参获得了值便于实参脱离关系,此后无论发生了怎样的变化,都不会影响实参。

2. 引用调用:
值调用是单向传递的。
引用是一个特殊类型的变量,可以被认为是另一个变量的别名。
注意:1)声明一个引用的时候,必须同时对它进行初始化,使它指向一个已经存在的对象。
2) 一旦一个引用被初始化之后就不能改为指向其他对象。

内联函数:
函数的调用是需要花费时间的,对于规模较小但又使用频繁的函数可以设计为内联函数。
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。
注意:
1)内联函数不能包含循环语句和switch语句
2)内联函数必须出现在第一次被调用之前
3)内联函数不能进行异常接口声明

带默认参数的函数:
函数在定义的时候可以预先声明默认的形参值,调用时如果给出实参,则用实参初始化形参,如果没有给出,则采用预先声明的默认形参值。
在相同的作用域内,默认行残值的说明应保持唯一。。。

函数重载
在程序中,一个函数就是一个操作名字,
两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。

使用C++系统函数
C++的系统库中提供了几百个函数可供使用。

在面向对象开发的过程中,函数是功能抽象的基本单位。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐