华为_C中级培训胶片.doc





《华为_C中级培训胶片.doc》由会员分享,可在线阅读,更多相关《华为_C中级培训胶片.doc(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 Mem
2、bers 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+ 规定与类同名的函数就是拷贝构造函数默认拷贝构造函数在类定义中如果没有提供自己的
3、拷贝构造函数,则C+ 提供一个默认的构造函数,其拷贝策略是逐个成员依次拷贝。深拷贝和浅拷贝默认拷贝构造函数均是浅拷贝但是一个类可能拥有其它资源,如其构造函数分配了一个堆内存,析构函数释放了这个内存,则此时就需要进行深拷贝了深拷贝不能依赖编译器实现静态成员与友元静态成员使用static 申明,在内存中永远只有一份实例是类的对象所共有的静态成员变量可以被成员函数访问,但静态成员函数只能访问静态成员变量友元是为了一个普通函数直接访问一个类的保护甚至是私有成员的机制组合与继承C + + 最重要的性能之一是代码重用简单地创建一个包含已存在的类对象的新类,这称为组合,has-a 关系创建一个新类作为一个已
4、存在类的类型,采取这个已存在类的形式,对它增加代码,但不修改它。称为继承,具有is-a 关系,继承具有单一继承和多继承类的应用的特例 继承中的向上映射与切片问题多继承中发生的菱形缺陷this 跳转继承中的向上映射与切片问题 如果有class B:public A ;B b; A a = b ; 这就是切片现象而B *pb = new B; A *pa = pb; 则不会发生切片,因为这只是指针的赋值而不涉及到切片现象多继承中发生的菱形缺陷菱形缺陷导致的原因:发生了菱形继承,如右图两个缺陷:子对象重叠向上映射的二义性解决办法:修改多继承关系为单一继承关系或者是组合关系进行虚继承this 跳转如右
5、图继承关系对于一个已经实例化B类的对象bObject ,永远有(B* )&bObject =(A*)&bObject 成立但是在多继承的世界内,上面的等式就不能恒成立,对象的同一性受到了挑战。 特别的是,在多继承世界内如果左下的菱形关系存在情况下,如果对于已经实例化B类的对象bObject; (Base* )(A1* )&bObject != (Base* )(A2* )&bObject 成立,当这种事情发生的时候我们就只能特殊处理了。这种情况在COM 应用中处处都会发生。第二章:接 口 基本知识基本特性接口应用的特例应用举例基本概念Class Virtual functions Pure v
6、irtual functions Abstract class Struct & Interface 基本特性虚函数纯虚函数抽象类接口虚函数语法特性虚析构函数语法 在普通成员函数前面加virtual 关键字一个函数在基类申明一个virtual ,那么在所有的派生类都是是virtual 的一个函数在基类为普通函数,在派生类定义为virtual 的函数称为越位特性实施晚期绑定(即运行时刻绑定),实施多态的一种方法具有虚函数类的虚函数表的布局如下:纯虚函数语法:成员函数前面加virtual 关键在,在函数申明的”)”后标注“= 0”关键字在申明纯虚函数类中不能实现该函数抽象类具有纯虚函数的类就是抽象
7、类抽象类不能被实例化,所以抽象类只能以指针方式被应用抽象类可以防止切片的发生抽象类不产生虚表。用户接口接口的演化与接口的必要性接口应用特例接口应用示例接口的演化与接口的必要性Handle-Body 模式抽象接口接口应用特例多重接口与方法名冲突问题(Siamese twins )提出问题:假设汽车最大速度的接口为ICar ,潜艇最大速度的接口为IBoat ,有一个两栖类的交通工具它可以奔跑在马路上,也可以航行在大海中,那么它就同时拥有ICar 、IBoat 两种交通工具的最大速度特性,我们定义它的接口为ICarBoat ;解决问题采用中间类的解决办法内嵌内的解决办法(留给大家思考) 采用中间类的
8、解决办法接口应用示例抽象工厂第二章:运算符重载基本概念可重载和不可重载几类特殊的运算符重载运算符重载的运用基本概念 Overloaded Functions Overloaded Operators Declaration Matching Argument Matching Argument Types Matching Argument Counts Matching C+ Unary Operators Binary Operators Smart Pointer Function Objects 可重载和不可重载可重载运算符+ * / % & | ! = += = *= /= %= =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为_C 中级培训胶片 华为 _C 中级 培训 胶片

限制150内