第4课:C++函数与类讲义课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4课:C++函数与类讲义课件.pptx》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 函数 讲义 课件
- 资源描述:
-
1、灵训教育灵训教育C+C+语言基础语言基础第第4 4课课:C+C+函数函数与类与类2023-5-232第第5 5章、函数章、函数5.1 5.1 函数的定义与使用函数的定义与使用5.2 5.2 函数重载函数重载5.3 5.3 函数指针函数指针第第6 6章、类章、类6.1 6.1 成员与访问控制成员与访问控制6.2 6.2 拷贝构造、赋值,类型转换拷贝构造、赋值,类型转换6.3 6.3 右值引用,移动构造、赋值右值引用,移动构造、赋值6.4 6.4 嵌套类、局部类嵌套类、局部类6.5 6.5 类型别名、友元类型别名、友元6.6 6.6 继承、多重继承继承、多重继承6.7 6.7 多态多态6.8 6.
2、8 限定符限定符2023-5-233 熟悉熟悉C+C+函数和类的概念(函数和类的概念(函数函数,重载重载,函数指针函数指针,类类,继承继承,构造函数构造函数,析构函数析构函数,虚函数虚函数,纯虚函数纯虚函数,右值引用右值引用,抽象基类抽象基类,接口接口,覆盖覆盖,隐藏隐藏,多重继承多重继承,虚基类虚基类)。)。掌握掌握C+C+的语法关键字:的语法关键字:protectedprotected、privateprivate、typedeftypedef、friendfriend、staticstatic、constconst、constexprconstexpr、mutablemutable、vo
3、latilevolatile、explicitexplicit、noexceptnoexcept、virtualvirtual、overrideoverride、finalfinal、thread_localthread_local、virtual、override、final。2023-5-234 5 5.1 .1 函数的定义与使用函数的定义与使用5 5.2 2 函数重载函数重载5 5.3 3 函数指针函数指针接第接第1.51.5节,本章将详细讲解函数的相关语法概念节,本章将详细讲解函数的相关语法概念。2023-5-2355 5.1 1.1 .1 全局函数全局函数5.1.2 5.1.2 形参
4、、实参、返回值形参、实参、返回值5.1.3 5.1.3 成员函数成员函数5.1.4 5.1.4 局部函数(局部函数(lambdalambda)2023-5-236 在程序结构中,全局函数需要首先定义(或声明),然后在具体的实现文件中实现代码,之后才可以在其他代码中调用。全局函数在调用时,可以使用命名空间加界定运算符符的方式引用,或直接用界定运算符引用,防止与同名的成员函数混淆。一个函数可以被另外一个函数调用,当函数直接或间接调用到自己时,也称为递归调用,要特别注意递归调用产生的死循环,会导致栈溢出。函数的实现代码只能是一份,可以在多处声明,多次调用,调用前必须首先声明,如果函数的实现部分在函数
5、的调用部分之前,则函数的声明可省略。函数在声明时,可以添加extern关键字限定。函数在实现时,如果添加static关键字限定,表示该函数是静态全局函数(内部函数),只能在该实现文件内部使用,不能被声明调用。不建议滥用全局函数。2023-5-237 函数在定义(或声明)、实现部分定义的参数是形参,在调用的部分带入的参数是实参;实参与形参要一一对应;可以从右向左为形参定义默认值,在实参调用时,有默认值的形参可以不指定实参。一般形参的改变不会影响到实参,不过可以将形参定义为引用类型,这样在函数体内改变形参的值,可以最终影响实参。函数实参的求值顺序是从右向左。一个函数可以有且只能有一个返回值,该返回
6、值必须通过return关键字返回,且必须与函数定义的返回值类型一致,返回值可以参与表达式运算;如果函数没有返回值,可以将返回值类型定义为void型,函数仍然可以使用return返回。建议一个函数自有一个出口,对于有返回值的函数,用一个return语句,对于无返回值的函数,无return语句。2023-5-238定义在类中的函数被称为成员函数。成员函数不能被外部声明引用,只能被定义一次,实现一次,可被调用多次。成员函数在定义时,可以直接编写代码(不建议),也可以分离到外部,在实现文件中编写代码;如果函数在外部编写代码,需要加上类名的界定。在成员函数内部可以使用类的数据成员;在成员函数内部还隐含一
7、个形参this,表示该类的实例对象指针。成员函数在被调用时,需要使用一个实例化的类对象变量加成员引用运算符,该变量的指针被作为this的实参传递给成员函数,成员函数操作的所有数据成员全通过this指针获取。(考虑下,用空指针引用成员函数的情况)成员函数在类中定义时,如果加上static关键字,被称为静态成员函数。静态成员函数类似全局函数,不隐含this指针,不得使用数据成员,可以使用静态数据成员,使用时需要用类加界定运算符。2023-5-239C+没有子函数的概念,不过C+11标准中,增加了lambda表达式的语法概念。可以在一个函数内部定义一个局部函数,定义形式如下:捕获列表(形参列表)-返
8、回值类型函数体代码;捕获列表:获取上级函数的局部变量。使用&表示以引用的方式获取,使用=表示以值的方式获取;也可以具体指定上级函数的局部变量名。形参列表、返回值类型、函数体:与正常函数定义形式一样。lambda表达式需要赋值给一个变量(函数对象),才可以正常使用。2023-5-2310不使用循环,仅使用函数,实现从1加到100。2023-5-23115 5.2 2.1 .1 函数重载定义函数重载定义5.2.2 5.2.2 实参匹配实参匹配2023-5-2312在相同作用域中的函数,如果名称相同,形参不同,则称为函数重载。形参不同指形参的类型或数量不同。运算符重载可以看作是一种函数重载。2023
9、-5-2313函数重载在使用时,C+编译器会根据实参与形参的类型匹配程度最接近的函数。如果两个函数匹配程度一样,则会产生二义性的编译错误。2023-5-23145 5.3 3.1 .1 函数指针的定义函数指针的定义5.3.2 5.3.2 函数重载的指针函数重载的指针5.3.3 5.3.3 运算符重载的指针运算符重载的指针2023-5-2315函数指针的定义形式类似于函数声明,将函数名替换为指针。函数指针是个指针类型的变量,用取地址运算符获取函数的地址;调用时,与普通函数的调用方式相同。函数指针只针对全局函数和静态成员函数。注意,由于函数调用运算符的优先级较高,解地址运算符与函数指针需要用括号括
10、起来。2023-5-2316函数重载在获取函数指针时,也使用最匹配原则,有时也可以使用强制类型转换。2023-5-2317运算符重载与函数有相同的特性,也可以赋值给一个函数指针变量。2023-5-2318 6 6.1 .1 成员与访问控制成员与访问控制6 6.2 2 拷贝构造、赋值,类型转换拷贝构造、赋值,类型转换 6 6.3 3 右值引用,移动构造、赋值右值引用,移动构造、赋值 6 6.4 4 嵌套类、局部类嵌套类、局部类 6 6.5 5 类型别名、类型别名、友元友元 6 6.6 6 继承、多重继承继承、多重继承 6 6.7 7 多态多态 6 6.8 8 限定符限定符接第接第1.31.3节,
11、本章详细讲解类的语法概念节,本章详细讲解类的语法概念。2023-5-23196 6.1 1.1 .1 构造、析构函数构造、析构函数6.1.2 6.1.2 数据成员、数据成员、成员函数成员函数6.1.3 6.1.3 访问控制访问控制6.1.4 6.1.4 成员指针成员指针2023-5-2320每个类都会有构造函数和析构函数,如果用户未定义,C+编译器会自动生成默认的无参数的构造、析构函数。用户可以定义自己的构造、析构函数,构造函数可以带参数,析构函数不能有参数。如果自定义的无参数的构造、析构函数,希望保留与默认相同的功能,可以使用default关键字,如果希望删除默认的构造、析构函数,可以使用d
12、elete关键字。类的成员变量,可以在构造函数的初始化列表中赋初值,赋值的顺序与定义的顺序相同。类实例对象在创建的时候,构造函数被调用,销毁的时候,析构函数被调用。2023-5-2321不用循环语句,不使用递归,从1打印到100。2023-5-2322类中的函数成员被称为成员函数,包括普通成员函数和静态成员函数。类中的数据成员,包括成员变量、成员常量、成员引用、静态成员变量等;数据成员可在定义时,直接赋初值,也可以在构造函数的初始化列表里赋初值。静态成员变量需要在实现文件中赋初值。成员引用只能在构造函数的初始化列表中赋初值。2023-5-2323C+的类成员,有三种访问控制类型:私有priva
13、te、保护protected、公有public。private:私有,只能被本类中的成员函数访问。protected:保护,只能被本类及子类中的成员函数访问。public:可被所有的函数访问。2023-5-2324严格上说,成员指针并不真正属于指针,只不过是在类中的偏移量。定义方式相对于真正的指针,需要在指针前加上类界定。成员指针定义好并赋值后,可以使用类实例对象变量加上成员指针运算符引用。2023-5-23256 6.2 2.1 .1 拷贝构造拷贝构造6.2.2 6.2.2 拷贝赋值拷贝赋值6.2.3 6.2.3 类型转换类型转换2023-5-2326拷贝构造函数的形参类型是本身类的引用,用
展开阅读全文