第二章 高级函数特性.

Slides:



Advertisements
Similar presentations
四資二甲 第三週作業 物件導向程式設計.
Advertisements

Oracle数据库 Oracle 子程序.
6.4 字符串与指针 1. 用字符数组存放一个字符串.
第14章 c++中的代码重用.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
Java 第12讲:static与方法重载 主讲教师:李焱 讲师.
4.3函数 4.3.1函数的概念及定义 1、函数的概念: 可以被其它程序调用具有 特定功能的一段相对独立的 程序(模块),称函数。
授课老师:龚涛 信息科学与技术学院 2017年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Hadoop I/O By ShiChaojie.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
程序设计期末复习 黎金宁
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
走进编程 程序的顺序结构(二).
辅导课程六.
第9章 类和对象(一) 9.1 面向对象的基本概念 9.2 类与对象的声明和定义 9.3 成员函数 9.4 对象的访问 9.5 对象的存储.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
第1章 C++概述  知识点 面向对象程序设计的基本概念 C++的起源和特点 C++源程序的构成 C++在非面向对象方面的一些特性
第一章 C++基础.
第4讲 函数的高级应用 主讲教师:资讯系 张玉宏.
泛型委托 泛型接口、方法和委托.
参考书 《C++程序设计教程》 钱能 主编 清华大学出版社
第十章 模板 丘志杰 电子科技大学 计算机学院 软件学院.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第七章 操作符重载 胡昊 南京大学计算机系软件所.
第8章 函 数 一、函数与调用约定 二、函数的总体概念.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
Java變數 2014/6/24.
C++语言程序设计 第三章 函数 清华大学 郑 莉.
C++语言程序设计 第三章 函数.
第二章 Java基本语法 讲师:复凡.
分裂对象模型 C++ otcl.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
第五章 函 数 要点:掌握函数的定义,函数的原形,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握函数重载的使用方法,关键字inline的含义与使用,掌握变量的作用域与生存期,了解函数的作用域。
第三章 数据抽象.
第4章 Excel电子表格制作软件 4.4 函数(一).
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
iSIGHT 基本培训 使用 Excel的栅栏问题
第二章 类型、对象、运算符和表达式.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Review 1~3.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
辅导课程十五.
第四章 函数 丘志杰 电子科技大学 计算机学院 软件学院.
第7章 模板 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 结构体.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
第7章 自定义函数.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第三章 高级函数特性.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
C++语言程序设计教程 第4章 函数 第4章 函数.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
本节内容 this指针 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Presentation transcript:

第二章 高级函数特性

回顾 传统编程的缺点 对象 类 抽象 继承 封装 多态性

目标 引用 默认参数 内联函数 函数重载

按值传递 函数调用中复制参数的值 函数只能访问自己创建的副本 对副本进行的更改不会影响原始变量 25 100#

按引用传递 函数调用中传递参数的引用 主要优点 函数可以访问主调程序中的实际变量 提供一种将多个值从被调函数返回到主调程序的机制 100# 25 100# 100

向函数传递引用 2-1 引用提供对象的别名或可选名 “&”告诉编译器将变量当作引用 void swap(int& i, int& j) { int tmp = i; i = j; j = tmp; } void main() int x, y; swap(x,y);

向函数传递引用 2-2 引用就是对象本身 不要认为 引用是指向对象的指针 引用是该对象的副本 大的数据结构按引用传递,效率非常高

返回引用 返回引用不是返回变量的副本 函数头中包含一个“&” int &fn(int &num) { return(num); } void main() int n1, n2; n1 = fn(n2);

常量引用 用于不希望修改对象,以及要把大对象当作输入参数的情况 高效性和安全性 将引用声明为常量,不能再绑定别的对象 double distance(const point& p1, const point& p2); 将引用声明为常量,不能再绑定别的对象 int const &ri = num1;

函数 函数声明 函数名 函数返回值的类型 函数的参数个数和类型 函数声明可以不包含参数名 调用函数时可以不指定全部参数

函数的默认参数 为可以不指定的参数提供默认值 或 void func(int = 1, int = 3, char = '*'); void func(int num1,int num2 = 3,char ch = '*');

参数的默认值 2-1 一旦给一个参数赋了默认值,后续所有参数也都必须有默认值 默认值的类型必须正确 void errfunc(int num1=2,int num2,char ch='+');//错误 默认值的类型必须正确 默认值可以在原型或者函数定义中给出,但不能在两个位置同时给出 建议在原型声明中指定默认值

参数的默认值 2-2 调用上面声明的函数 func() 如果遗漏了中间的参数,编译器将报错 func(2,13,'+');

默认参数的优点 如果要使用的参数在函数中几乎总是采用相同的值,则默认参数非常方便 通过添加参数来增加函数的功能时,默认参数也非常有用

内联函数 2-1 通常的函数调用会节省内存空间,但是会花费一些额外的时间 内联函数节省短函数的执行时间 inline float converter(float dollars);

内联函数 2-2 非常短的函数适合于内联 函数体会插入到发生函数调用的地方 fn1() fn1(); 语句; mfunc(); funcy(); main() 重复地 放到函数中的代码 放在内联函数中的代码

注意事项 编译器必须先看到函数定义,而不是声明 编译器有可能会忽略inline关键字 不允许为不同的源文件中的内联函数指定不同的实现

函数重载 2-1 具有相同的名称,执行基本相同的操作,但是使用不同的参数列表 函数多态性 void display(); void display(const char*); void display(int one, int two); void display(float number);

函数重载 2-2 编译器通过调用时参数的个数和类型确定调用重载函数的哪个定义 只有对不同的数据集完成基本相同任务的函数才应重载

函数重载的优点 不必使用不同的函数名 有助于理解和调试代码 易于维护代码

数据类型不同的重载 参数的类型不同,编译器就能够区分 同一函数名输出任何数据就是重载了输出函数 int square(int); float square(float); double square(double); 同一函数名输出任何数据就是重载了输出函数

参数个数不同的重载 编译器会调用参数匹配的函数 与函数的声明顺序无关 不会考虑返回类型 int square(int); //函数声明 int square(int,int,int); int asq = square(a) //函数调用 int bsq = square(x,y,z) 编译器会调用参数匹配的函数 与函数的声明顺序无关 不会考虑返回类型

函数重载的作用域规则 重载机制只有在函数声明的作用域内才有效 class first{ public: void display(); }; class second{ void main() { first object1; second object2; //没有发生函数重载 object1.display() object2.display(); }

总结 引用 默认参数 内联函数 函数重载