- 2
- 0
- 约3.56千字
- 约 21页
- 2016-10-04 发布于贵州
- 举报
嵌入式Linux下QT程序设计 主讲:成宝宗 本章主要内容 函数的定义和调用 函数间的参数传递 内联函数 带默认形参值的函数 函数重载 函数模板 函数的定义 形式参数表 type1 name1, type2 name2, ..., typen namen 函数的返回值 由 return 语句给出,例如:return 0 无返回值的函数(void类型),不必写return语句。 函数的调用 调用前先声明函数: 若函数定义在调用点之前,则无需另外声明; 若函数定义在调用点之后,则需要在调用函数前按如下形式声明函数原型: 类型标识符 被调用函数名(含类型说明的形参表); 调用形式 函数名(实参列表) 嵌套调用 函数可以嵌套调用,但不允许嵌套定义。 递归调用 函数直接或间接调用自身。 嵌套调用 函数的参数传递机制 ——传递参数值 在函数被调用时才分配形参的存储单元。 实参可以是常量、变量或表达式。 实参类型必须与形参相符。 传递时是传递参数值,即单向传递。 函数的参数传递机制 ——参数值传递举例 函数的参数传递 ——用引用做形参 引用()是标识符的别名,例如: int i, j;int ri = i; //建立一个int型的引用ri,并将其 //初始化为变量i的一个别名j = 10;ri = j;//相当于 i = j; 声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象。 一旦一个引用被初始化后,就不能改为指向其它对象。 引用可以作为形参void swap(int a, int b) {...} 输入两个整数交换后输出 #includeiostream using namespace std; void swap(int a, int b) { int t = a; a = b; b = t; } int main() { int x = 5, y = 10; cout x = x y = y endl; swap(x, y); cout x = x y = y endl; return 0; } 内联函数声明与使用 声明时使用关键字 inline。 编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。 注意: 内联函数体内不能有循环语句和switch语句。 内联函数的声明必须出现在内联函数第一次被调用之前。 对内联函数不能进行异常接口声明。 缺省形参值的作用 函数在声明时可以预先给出缺省的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的缺省形参值。 例如: int add(int x = 5,int y = 6) { return x + y; } int main() { add(10,20);//10+20 add(10); //10+6 add(); //5+6 } 缺省形参值与函数的调用位置 如果一个函数有原型声明,且原型声明在定义之前,则缺省形参值必须在函数原型声明中给出;而如果只有函数的定义,或函数定义在前,则缺省形参值需在函数定义中给出。 例: 函数模板 函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,简化重载函数的函数体设计。它的最大特点是把函数所使用的数据类型作为参数。 函数模板的定义形式如下: template class 标识符 函数定义 标准函数与非标准函数 标准C++函数 C++标准中规定的函数; 各种编译环境普遍支持,因此用标准函数的程序移植性好; 很多标准C++函数继承自标准C,头文件以c开头:cmath,cstdlib,cstdio,ctime…… 非标准C++函数 与特定操作系统或编译环境相关; 在处理和操作系统相关事务时常常需要调用。 * * * * * * * * * * * * * * 中程在线信息产业培训网 * * 函数的定义 函数是面向对象程序设计中,对功能的抽象 函数定义的语法形式 类型标识符 函数名(形式参数表) { 语句序列 } 是被初始化的内部变量,寿命和可见性仅限于函数内部 若无返回值,写void * * * main{} 调fun1() 结束 fun1() 调fun2() 返回 fun2() 返回 ① ② ③ ⑦ ④ ⑤ ⑥ ⑧ ⑨ * X N 被调函数: 主调函数: 3 2.5 A D = power(A,3) 2.5 3 double power(double X,int N) * * 运行结果: x = 5 y = 10 x = 10 y = 5 t=a; x 5 t 5 x
您可能关注的文档
最近下载
- 大型羊场及配套沼气建设项目可行性研究报告书.doc VIP
- 2022-2023学年八年级英语下学期期末考点大串讲(牛津译林版):八年级英语下学期期末考试02(宿迁卷).pdf VIP
- 高中英语必背3500单词表(完整版).pdf VIP
- 催收评分技术及其在个人信贷催收管理中的应用.pdf VIP
- 土木工程测量-岳建平第1章绪论资料.ppt VIP
- 电磁场仿真软件:CST Microwave Studio二次开发_(6).材料属性设置.docx VIP
- 浙江省金华市十校联考2025-2026学年第一学期期末质量检测高一英语试题含答案.pdf
- 电磁仿真软件:CST Microwave Studio二次开发_(8).高级脚本应用:电磁建模与求解.docx VIP
- 电磁场仿真软件:CST Microwave Studio二次开发_(8).求解器选择与参数设置.docx VIP
- 电磁场仿真软件:CST Microwave Studio二次开发_(20).案例分析与实践.docx VIP
原创力文档

文档评论(0)