1 / 33
文档名称:

第四章 函数.doc

格式:doc   页数:33
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第四章 函数.doc

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

第四章 函数.doc

文档介绍

文档介绍:第四章函数
函数是C++程序的基本模块。通常我们将一些功能相对独立的或经常使用的操作或运算抽象出来,定义为函数,这些函数可以被重复使用,使用时只要考虑其功能和使用接口即可。在结构化程序设计中,函数是将任务进行模块划分的基本单位,这些模块可以分别单独设计调试并协作完成整个任务。而在面向对象的程序设计中,类中所封装的操作也是用函数进行描述的,因此函数在C++程序中具有非常重要的意义。要掌握函数的使用,必须理解函数调用时的内部实现机制,以及与此相关的内存分配机制、变量的生命期和作用域。作为面向对象的设计语言,本章还将介绍关于函数重载的概念,此外,还将介绍递归算法、内联函数、默认参数函数以及多文件组织、编译预处理、工程文件的概念和运行库函数。
函数的定义与调用
函数概述
在编写较大的程序时,由于任务相对复杂,程序篇幅大,给设计、调试、阅读都将带来困难。如果能将任务合理划分,对功能相对简单的子任务进行单独设计调试,又通过某种机制将这些子任务连接成完整的程序,就能大大提高程序设计效率。函数便体现了这样的设计思想。
main()
fun2()
fun3()
fun1()
fun2_1()
fun2_2()
fun1_1()
函数调用层次关系
任何一个C++程序都是由若干个函数组成的,其中有一个函数称为主函数,它是程序执行的入口函数,VC++的控制台编程由用户定义为main()函数,而Windows编程(MFC)则由编译系统定义为WinMain()。一般一个函数既可以调用其他函数,也可以被其他函数调用,但主函数只能调用其他函数,而不能被调用。。
函数按其是否系统预定义分为两类,一类是编译系统预定义的,称为库函数或标准函数,如一些常用的数学计算函数、字符串处理函数、图形处理函数、标准输入输出函数等。这些库函数都按功能分类,集中说明在不同的头文件中。用户只需在自己的程序中包含某个头文件,就可直接使用该文件中定义的函数。另一类是用户自定义函数,用户可以根据需要将某个具有相对独立功能的程序定义为函数。
函数按是否带有参数分为有参函数和无参函数。如前面介绍的exit( )函数,使用时必带有一个参数,称为有参函数;而abort( )函数则不带参数,称为无参函数。
函数的定义
一个函数包括函数头和函数体两部分。函数头定义函数名、参数、函数返回值类型等内容,函数体则定义函数的算法实现。对于用户自定义函数,必须先定义后使用。下面分别介绍无参函数和有参函数的定义格式。
1 无参函数
定义格式为:
《数据类型》函数名(《void》) { 函数体}
其中数据类型指函数返回值类型,可以是任一种标准的或已定义的数据类型。缺省为返回整型值。有些函数实际上只是为了完成某个操作而不是为了求一个值,则应将返回值类型定义为void,表示没有返回值。函数名只能用合法标识符表示,不能用常量或表达式。无参函数参数括号中的void通常也可以缺省,但括号不能省略。函数体由一系列语句组成。函数体可以为空,称为空函数。空函数一般不具有实际意义,但在某些特殊场合有用,如纯虚函数不定义函数体。关于纯虚函数将在面向对象设计中介绍。请看一个无参函数的例子:
void TableHead ( ) {
cout<<″****************″<<endl;
cout<<″* example *″<<endl;
cout<<″****************″<<endl;
}
该函数的功能是打印一个表头。
2 有参函数
有参函数的定义格式为:
《数据类型》函数名(参数类型1 形式参数1《,参数类型2 形式参数2,…》){<函数体>}
有参函数和无参函数定义的区别仅在于参数表部分。有参函数的参数表中列出所有形式参数的类型及参数名称。参数类型可以是任一种标准类型或已定义类型,各参数之间即使类型相同也必须分别加以说明。形式参数简称形参,只能是变量名,不允许常量或表达式。请看以下有参函数的例子:
max (int a, int b){
return(a>=b?a:b);
}
该函数的功能是返回两个整数中较大一个的值。
根据参数和返回值请况,函数可有以下四种形式:
(1)获取参数并返回值。如上例。
(2)获取参数但不返回值。例如:
void delay(long n){
for (int i=0;i<n;i++); //延时一段时间
}
(3)不获取参数但返回值。例如:
int input ( ){ //输入满足要求的数据
int n;
cout<<″输入一个大于5的整数:″<<endl;
do
cin>>n;
while(n<=5)

最近更新

2026年全国蚕学专业最好的大学排名 3页

2023年义乌工商职业技术学院单招职业技能考试.. 40页

2023年九江职业技术学院单招职业倾向性测试题.. 42页

2023年云南国土资源职业学院单招职业适应性测.. 39页

2023年云南新兴职业学院单招职业适应性测试题.. 39页

2023年云南理工职业学院单招职业适应性考试题.. 40页

2023年云南省玉溪市单招职业倾向性考试题库推.. 41页

2023年保定幼儿师范高等专科学校单招职业技能.. 41页

2023年兰州航空职业技术学院单招职业倾向性考.. 41页

2023年内江职业技术学院单招职业倾向性测试题.. 41页

2023年内蒙古包头市单招职业适应性考试模拟测.. 41页

2023年内蒙古机电职业技术学院单招职业技能考.. 40页

2023年内蒙古锡林郭勒盟单招职业倾向性测试题.. 39页

2026年兔宝宝取名王姓忌用字 8页

2023年南京特殊教育师范学院单招职业适应性考.. 40页

2023年南昌理工学院单招职业倾向性测试题库必.. 41页

2023年厦门南洋职业学院单招职业适应性考试模.. 41页

2023年台州科技职业学院单招职业适应性测试题.. 41页

2023年合肥经济技术职业学院单招职业适应性测.. 41页

2023年吉林省延边朝鲜族自治州单招职业适应性.. 40页

2023年吉林职业技术学院单招职业适应性考试题.. 40页

2026年元旦晚会活动方案策划最新10篇 32页

2023年哈尔滨北方航空职业技术学院单招职业适.. 39页

2023年商丘职业技术学院单招职业适应性测试题.. 40页

2023年四川商务职业学院单招职业倾向性考试模.. 40页

2023年四川幼儿师范高等专科学校单招职业倾向.. 39页

2026年元宵节温馨祝福语 8页

2023年四川电子机械职业技术学院单招职业技能.. 41页

2023年四川铁道职业学院单招职业倾向性考试题.. 39页

2023年大庆医学高等专科学校单招综合素质考试.. 41页