欢迎来到天天文库
浏览记录
ID:44195390
大小:104.00 KB
页数:16页
时间:2019-10-19
《c++教程第6章函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章函数C++中的模块份分为函数(function)和类(class)。C++程序一般是将程序员编写的新函数与C++标准库(standardlibrary)中提供的预装函数,以及新类与各种类库中提供的预装类组合而成的。6.1函数的概念和定义函数可以被看作是程序员定义的操作,每个函数都会实现一系列的计算,然后(大部分时候)生成一个计算结果。在后面提到的面向对象技术中,可以看到函数是对功能的抽象。在一个程序文件中可以包含若干个函数。无论把一个程序划分为多少个程序模块,只能有一个main函数。程序总是从main函数开始执行。在程序运行过程
2、中,由主函数调用其他函数,其他函数也可以互相调用。要想实现函数具体的功能,就必须进行函数定义。函数的定义是由返回类型、函数名、一组操作数类型和函数体构成的。6.2函数原型同变量的使用一样,函数的使用也需要遵循先声明后使用的原则,在调用函数之前需要声明。函数原型由函数返回类型、函数名和形参列表组成,6.3函数参数在C++语言中,主调函数可以使用函数名和一组由逗号分割开来的实参来对函数进行调用。函数调用的结果就是该函数返回值的类型。6.3.1函数参数传递方式函数名使用的是形参,而当主调函数调用函数时,在函数名后面的是实参,那么实参是如何向
3、形参传递的呢?在C++语言中,函数参数传递的方式有两种,即值传递和引用传递。下面来介绍值传递,引用传递将留在第7章中进行详细描述。6.3.2main()函数的参数到目前为止,所涉及的main函数都都未使用到参数列表。但是,在大多情况下需要给main函数传递实参。例如,在DOS环境下,各种命令所需要的参数是需要传递给main函数的。6.3.3省略符形参当无法列举出函数所有形参的类型和数目的时候,就需要使用省略符形参,其语法结构如下。类型标识符函数名(…);类型标识符函数名(形参1,…);6.4函数作用域规则在前面的讨论中,发现只有在调用
4、函数时形参才会被分配内存空间,当函数调用结束后,形参分配的空间即被释放,由此可见形参只有在函数中才有效。在C++中,变量的作用范围和生命期是不一样的,按照变量的作用范围来分,变量可以分为局部变量和全局变量。6.4.1作用域在函数和类(后面将介绍类的概念)之外定义的变量具有全局的作用,称为全局变量。C++函数体一般是包含在一对花括号中,称为语句块。在语句块中定义的变量只具有局部的作用域,即该函数体中,将这些变量称为局部变量,因此形参也是局部变量。局部变量只有在其局部的作用域中有效。6.4.2局部变量变量的生存周期是从定义时开始,到退出作
5、用域时销毁。局部变量只有在作用域内才可以使用它们,作用域外不可以使用这些变量。主函数中的变量也是局部变量,其只在主函数中有效,不能被其他函数使用,同样,主函数也不可以使用其他函数的局部变量。在相同的作用域中,变量不可以同名。在不同的作用域中,可以使用相同的变量名,它们使用不同的内存,互不打扰。6.4.3全局变量全局变量定义在函数或类的外面,其作用域从定义位置起到源文件结束。全局变量之后的所有函数都可以使用全局变量。6.5函数的嵌套与递归调用函数的嵌套调用就是主调函数调用被调函数时,被调函数又调用了另外函数,在函数中形成嵌套关系,如图所
6、示。6.6内联函数函数的引入可以实现代码的共享,减少程序的代码量,可是函数的调用又需要一些时间和空间上的开销,主调函数调用被调函数时,需要保护现场,然后转入被调函数中,在被调函数中要分配内存,在函数执行结束后返回并恢复现场。当函数的代码很短的时候,这样的开销是不可忽略的。6.7函数的模板函数模板是指建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。6.8应用程序举例编写一个程序,由键盘输入两个整数,求出这两个数的最大公约数和最小公倍数。6.9小结在调用之前对被调用函数进行声明。在调用
7、函数时,函数定义和函数调用的形参和实参的个数、类型、顺序和返回值类型应该相符。
此文档下载收益归作者所有