




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+中级培训,员工培训中心2005年7月1日,蔡利元,课程内容,第一章:类第二章:接口第三章:运算符重载第四章:模板,第一章:类,基本概念类的基本特性类的应用的特例,基本概念,namespaceClassnamesClassmembersMemberFunctionsStaticMemberFunctionsUnionsC+BitFieldsNestedClassDeclarationsTypeNamesinClassScopeMultipleBaseClassesVirtualFunctionsAbstractClassesControllingAccesstoClassMembersprivateMembersprotectedMemberspublicMembersAccessSpecifiersforBaseClasses,priavte,public、protectedFriendsConstructorsDestructorsConversionFunctionsthenewoperatorandthedeleteoperatorCopyingConstructorFunctionsInterface,类的基本特性,构造函数与拷贝构造函数静态成员与友元组合与继承,构造函数与拷贝构造函数,C+规定与类同名的函数就是拷贝构造函数默认拷贝构造函数在类定义中如果没有提供自己的拷贝构造函数,则C+提供一个默认的构造函数,其拷贝策略是逐个成员依次拷贝。深拷贝和浅拷贝默认拷贝构造函数均是浅拷贝但是一个类可能拥有其它资源,如其构造函数分配了一个堆内存,析构函数释放了这个内存,则此时就需要进行深拷贝了深拷贝不能依赖编译器实现,静态成员与友元,静态成员使用static申明,在内存中永远只有一份实例是类的对象所共有的静态成员变量可以被成员函数访问,但静态成员函数只能访问静态成员变量友元是为了一个普通函数直接访问一个类的保护甚至是私有成员的机制,组合与继承,C+最重要的性能之一是代码重用简单地创建一个包含已存在的类对象的新类,这称为组合,has-a关系创建一个新类作为一个已存在类的类型,采取这个已存在类的形式,对它增加代码,但不修改它。称为继承,具有is-a关系,继承具有单一继承和多继承,类的应用的特例,继承中的向上映射与切片问题多继承中发生的菱形缺陷this跳转,继承中的向上映射与切片问题,如果有classB:publicA;Bb;Aa=b;这就是切片现象而B*pb=newB;A*pa=pb;则不会发生切片,因为这只是指针的赋值而不涉及到切片现象,多继承中发生的菱形缺陷,菱形缺陷导致的原因:发生了菱形继承,如右图两个缺陷:子对象重叠向上映射的二义性解决办法:修改多继承关系为单一继承关系或者是组合关系进行虚继承,this跳转,如右图继承关系对于一个已经实例化B类的对象bObject,永远有(B*)(Base*)(A1*)templatestructiterator_traitstypedeftypenameI:iterator_categoryiterator_categorytypedeftypenameI:value_typevalue_type;typedeftypenameI:difference_typediffernce_type;typedeftypenameI:pointerpointer;typedeftypenameI:refrencerefrence;Templatestructint2typeenumvalue=v;,申明并不一定要定义,申明一个函数,并不定义禁止某种缺省函数的调用申明一个函数而不实现可能是为了模板函数的泛化申明一个函数可能仅仅为了获得特殊某一项功能申明一个类而不实现禁止模板类的泛化,只允许特化实施编译某项功能的检测如:编译时刻断言,模板设计的基本方法,编译器断言模板特化局部类常数映射型别型别映射型别型别选择Nullclassornullfunction和EmptyclassTypeTraits模板嵌套Policyclass,利用模板设计的方法解题,编译时刻测试类型的可转换性用到的技术:只定义不实现函数多态性可变参函数sizeoftemplatetypedefcharsmall;classbigchardummy2;staticsmalltest(U);只定义不实现staticbigtest();staticTmarkT();/函数定义只是为了得到一个返回类型public;enumvalue=sizeof(test(makT()=sizeof(Small);,STL标准模板库,容器迭代器算法仿函数配接器,容器,序列容器vector,list、deque、stack(没有迭代器)、queue(没有迭代器)、即stack、queue不允许遍历行为关联容器set(标准)、map(标准)、hash_table、RB-tree通用算法begin()、end()、size()、empty()、erase(iterator_position)、clear(),迭代器,迭代器的基本算法迭代器型别型别萃取,迭代器的基本算法,能够进行+、+、-、+=、=、=、!=等运算是一种智能性指针,实现operator*operator-的重载根据迭代器的特点,迭代器又称循环子迭代器前闭后开区间first,last),型别,单向迭代器可逆迭代器随机迭代器迭代器的继承关系:,型别萃取,型别value_typedifference_typerefrence_typepointer_typeiterator_category型别萃取机iterator_traits,算法,数值运算power、itoa、accumulate基本运算fill、fill_n、swap、max、min、iter_swap、copy集合运算set_union、set_interseion、set_diffrence数据整理(以循环子为参数)count、count_if、find、find_if、for_each、merge、sort、upper、search、search_n,仿函数,一元仿函数二元仿函数二元化一元仿函数仿函数应用,一元仿函数,templatestructunary_functiontypedef_Argargument_type;typedef_Resultresult_type;templatestructnegate:publicunary_function_Tpoperator()(constT:,二元仿函数,templatestructless:publicbinary_functionbooloperator()(const_Tp,二元化一元仿函数,Classbinder1stbinder1st(constOperation,仿函数应用,templateinline_InputIter_find_if(_InputIter_first,_InputIter_last,Operation_op,constinput_iterator_tag,配接器,容器配接器stackQueue迭代配接器ReverseIteratorsIOStreamIteratorsInert_Iterator仿函数配接器,容器配接器,容器配接器StacktemplateclassstackQueuequeuemyQueue;,仿函数配接器,绑定bind1st、bind2ndop(x,param)orop(param,x)修饰not1、not2!op(param)or!op(param1,param2)组合compose1、compose2op1(op2(param);,仿函数配接器,函数配接ptr_fun1、ptr_fun2fp(param)orfp(param1,param2)对象配接mem_fun、mem_fun_ref、mem_fun1、mem_fun1_ref(param-*f)()or(param.*f)()or(param-*f)(x)or(param.*f)(x),仿函数配接器,举例不小于x表达式not1(bind2nd(less(),x)f(g(x)的表达式Compose1(f,g)find_if(first,end,mem_fun(,STL库引用,标准引用办法#include#includeusingnamespacest
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备监理机构管理制度
- 设备设施处置管理制度
- 设计公司保密管理制度
- 设计外包单位管理制度
- 评估机构选聘管理制度
- 诊所患者流量管理制度
- 诊所饮水设备管理制度
- 诚信公司经营管理制度
- 财务部门目标管理制度
- 财政补助资金管理制度
- 2025年-甘肃建筑安全员-C证考试(专职安全员)题库及答案
- 高压灭菌锅使用管理制度
- 坚持教育优先发展
- 外研版三年级下册英语全册单元测试卷(含期中期末试卷及听力音频)
- 劳务施工总承包合同
- 2025届高考物理说题大赛-以电学实验为例
- 休学一年后复学申请书
- 水下无线光通信高灵敏度调制编码与接收技术研究
- 断绝父母关系协议书
- 汽车金融不良资产分类研究-深度研究
- 2025年光伏发电项目合同能源管理合同
评论
0/150
提交评论