- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++中级培训
员工培训中心
2005年7月1日
蔡利元
课程内容
第一章: 类
第二章:接 口
第三章:运算符重载
第四章:模 板
第一章: 类
基本概念
类的基本特性
类的应用的特例
基本概念
namespace
Class names
Class members
Member Functions
Static Member Functions
Unions
C++ Bit Fields
Nested Class Declarations
Type Names in Class Scope
Multiple Base Classes
Virtual Functions
Abstract Classes
Controlling Access to Class Members
private Members
protected Members
public Members
Access Specifiers for Base Classes,priavte,public、protected
Friends
Constructors
Destructors
Conversion Functions
the new operator and the delete operator
Copying Constructor Functions
Interface
类的基本特性
构造函数与拷贝构造函数
静态成员与友元
组合与继承
构造函数与拷贝构造函数
C++规定与类同名的函数就是拷贝构造函数
默认拷贝构造函数
在类定义中如果没有提供自己的拷贝构造函数,则C++提供一个默认的构造函数,其拷贝策略是逐个成员依次拷贝。
深拷贝和浅拷贝
默认拷贝构造函数均是浅拷贝
但是一个类可能拥有其它资源,如其构造函数分配了一个堆内存,析构函数释放了这个内存,则此时就需要进行深拷贝了
深拷贝不能依赖编译器实现
静态成员与友元
静态成员使用static 申明,在内存中永远只有一份实例
是类的对象所共有的
静态成员变量可以被成员函数访问,但静态成员函数只能访问静态成员变量
友元是为了一个普通函数直接访问一个类的保护甚至是私有成员的机制
组合与继承
C + +最重要的性能之一是代码重用
简单地创建一个包含已存在的类对象的新类,这称为组合,has-a 关系
创建一个新类作为一个已存在类的类型,采取这个已存在类的形式,对它增加代码,但不修改它。称为继承,具有is-a关系,继承具有单一继承和多继承
类的应用的特例
继承中的向上映射与切片问题
多继承中发生的菱形缺陷
this跳转
继承中的向上映射与切片问题
如果有 class B:public A;
B b;
A a = b;
这就是切片现象
而
B *pb = new B;
A *pa = pb;
则不会发生切片,因为这只是指针的赋值而不涉及到切片现象
多继承中发生的菱形缺陷
菱形缺陷导致的原因:
发生了菱形继承,如右图
两个缺陷:
子对象重叠
向上映射的二义性
解决办法:
修改多继承关系为单一继承关系或者是组合关系
进行虚继承
this跳转
如右图继承关系对于一个已经实例化B类的对象 bObject,永远有(B*)bObject ==(A*)bObject 成立
但是在多继承的世界内,上面的等式就不能恒成立,对象的同一性受到了挑战。
特别的是,在多继承世界内如果左下的菱形关系存在情况下,如果对于已经实例化B类的对象bObject; (Base*)(A1*)bObject != (Base*)(A2*)bObject 成立,当这种事情发生的时候我们就只能特殊处理了。这种情况在COM应用中处处都会发生 。
第二章:接 口
基本知识
基本特性
接口应用的特例
应用举例
基本概念
Class
Virtual functions
Pure virtual functions
Abstract class
Struct Interface
基本特性
虚函数
纯虚函数
抽象类
接口
虚函数
语法
特性
虚析构函数
语法
在普通成员函数前面加 virtual 关键字
一个函数在基类申明一个virtual,那么在所有的派生类都是是virtual的
一个函数在基类为普通函数,在派生类定义为virtua
您可能关注的文档
- 8d8個步骤解决问题改善手法.ppt
- 8D-A和A-D轉换器.ppt
- 8世界地圖引出的发现.PPT
- 8中秋與重阳.ppt
- 8五月6日.ppt
- 8代后詩歌.ppt
- 8八九十代小說和受戒.ppt
- 8四個太阳.ppt
- 8國际市场分销渠道策略.ppt
- 8小草和大樹.ppt
- 高中思想政治统编版(部编版)选择性必修2 法律与生活6.1法律保护下的婚姻 课件.pptx
- 【教学评一体化】Unit 1 Look it up! Section2 Grammar语法优质课件-新沪教八上.pptx
- 2026届高考英语复习 被动语态 课件.pptx
- 7.2《中非同行 从初见到共赢-合作共赢篇》教学课件 (内嵌视频) 湘教版(2024)七年级地理下册.pptx
- Unit 1 Pets 精品教学课件.pptx
- Module 3 Unit 6 At the weekend 课件 教科版(广州)英语五年级上册.pptx
- 北师大版高中数学选择性必修第一册 3.4.2第2课时用向量方法研究立体几何中的位置关系 课件.pptx
- 3.5一元一次不等式组 课件 数学湘教版七年级下册.pptx
- 历年一建《铁路工程管理与实务》案例分析题真题及答案解析(4).pdf
- Unit 3 Family 精品教学课件.pptx
文档评论(0)