文档详情

面向对象程序设计(C++)( 第二版) 课件 第5章 函数.ppt

发布:2017-08-15约7.72千字共32页下载文档
文本预览下载声明
尚辅网 尚辅网 尚辅网 5.9 编译预处理 5.9.2 条件编译命令 为了便于程序调试和移植等,C/C++语言提供了“条件编译”预处理命令,这些命令可以控制编译程序,当条件满足时对某一段程序代码进行编译,当条件不满足时不进行编译,或对另一段程序代码进行编译等。 条件编译有以下几种命令形式。 1.条件编译形式一 #if 表达式 程序段1 #else 程序段2 #endif 功能: 当表达式为“真”(非0)时,编译程序段1,否则编译程序段2。 尚辅网 5.9 编译预处理 2.条件编译形式二 #if 表达式1 程序段1 #elif 表达式2 程序段2 #elif 表达式3 程序段3 ? #else 程序段n #endif 功能:如果常量表达式1的值为“真”,则编译程序段l,否则如果常量表达式2的值为“真”,编译程序段2,…,如果所有表达式的值都为“假”,则编译程序段n。 尚辅网 5.9 编译预处理 3.条件编译形式三 #ifdef 宏名 程序段1 #else 程序段2 #endif 功能:用来测定一个宏名(标识符)是否被定义,如果宏名已被定义,则编译程序段1,否则编译程序段2。该命令形式的简化形式是没有#else部分,这时,若宏名未定义,则此命令中没有程序段被编译。 尚辅网 5.9 编译预处理 4. 条件编译形式四 #ifndef 宏名 程序段1 #else 程序段2 #endif 功能:用来测定一个宏名是否未曾被定义,如果宏名未被定义,则编译程序段1,否则编译程序段2。该命令形式的简化形式是没有#else部分,这时,若宏名已定义,则此命令中没有程序段被编译。 尚辅网 5.9 编译预处理 5.9.3 文件包含命令 文件包含是指一个源文件可以将另一个源文件包括进来,实际上已在前面章节多次出现,如#include stdio.h。文件包含的一般形式如下: #include 文件名 或写成 #include 文件名 其功能是用相应文件中的全部内容替换该预处理语句。 图5-6 #include命令 尚辅网 5.10 情景应用——训练项目 5.10.1 项目1:求数组中的最小值 【问题描述】 编写一个求数组元素最小值的函数fmMin(),要求数组名和元素的个数作为形参。然后编写主函数调用fmMin()函数,并输出结果。程序运行结果如图5-7所示。 图5-7 程序运行结果 尚辅网 % 大连理工大学出版社 地址:大连市软件园路80号 发行:0411E-mail : dutp@ C++ 面向对象程序设计 新世纪高职高专软件专业系列规划教材 第7章 继承与派生 第8章 多态和虚函数 第9章 模板和异常处理 第10章 文件的输入输出 第11章 Visual C++编程基础 第1章 绪论 第2章 数据类型和表达式 第3章 控制结构 第4章 复合数据类型 第5章 函数 第12章 MFC应用程序实例 第6章 类与对象 xxx xxxxx 目 录 页 xx 目 录 页 第5章 函 数 大连理工大学出版社 地址:大连市软件园路80号 E-mail : dutp@ URL:http://www.dutp,cn 尚辅网 尚辅网 尚辅网 学习目标 掌握函数的定义和调用 理解和掌握函数的参数传递、函数的重载和函数的默认参数 较熟练地使用C++的语句和函数进行程序设计 学会使用预处理命令 尚辅网 5.1 函数的定义与调用 5.1.1 函数的定义 一个函数必须定义后才能使用。所谓定义函数,就是编写完成函数功能的程序块。一个C++函数由函数头与函数体两部分组成,其一般形式如下: [返回类型] 函数名 ([形式参数列表]) //函数头 { 函数体 //函数体 } 函数体可以包含若干个变量和对象的定义,以及各种语句序列。 尚辅网 5.1 函数的定义与调用 1.函数头 函数头的组成形式如下: [返回类型] 函数名 ([形式参数列表]) ? 返回类型:返回类型规定函数返回值的类型。 对有值函数,一般通过函数调用得到一确定值,这个值就是函数返回值(简称函数值)。如float fnSum (float a,float b)将返回一个float类型的值。此时,在函数体部分有一返回语句“return fS
显示全部
相似文档