附件三附件三附件三附件三::::教教教教材模板材模板材模板材模板说说说说明明明明::::一一一一、、、、为为为为便于保存和管理便于保存和管理便于保存和管理便于保存和管理,,,,各各各各类类类类培培培培训训训训教教教教材均采用合材均采用合材均采用合材均采用合订订订订本本本本。。。。二二二二、、、、教教教教材材材材结结结结构构构构::::各类培训教材由教材封面、前言、课程目录、单门课程教材和封底五部分构成。三三三三、、、、教教教教材封面材封面材封面材封面::::1、封面颜色:教材封面为彩色,工作基本常识教材为深蓝色,技术基础知识教材为草绿色,管理基础知识教材为浅蓝色,营销基础知识教材为墨绿色。2、教材名称:采用“工作基本常识”“技术基础知识”“管理基础知识”“营销基础知识”,字体为隶书,黑体,60号。3、其他标识:员工培训中心编辑采用宋体、黑体、三号,位于教材名称下面;华为技术有限公司采用宋体、黑体、小二,位于底端;华为标识位于华为技术有限公司和员工培训中心编辑之间;右上角为保密标识,楷体,黑体,四号。四四四四、、、、教教教教材封底材封底材封底材封底::::教材封底包括教材名称、华为技术有限公司员工培训中心和时间、版本号,位于页面的右下角。五五五五、、、、前言前言前言前言::::教材前言为各类培训的目的、课程门类、特点、主要内容的简介。六六六六、、、、课课课课程目程目程目程目录录录录::::为各门课程排列顺序的目录,统一编排页码,便于学员查找。七七七七、、、、单门课单门课单门课单门课程程程程教教教教材材材材::::各单门课程教材由课程封面、章节目录、章节内容、学习要求、思考题、参考资料和相关网站组成。1、课程封面:课程封面为彩色,课程名称为隶书、60号、黑体、黑色,左上角为课程编码。2、章节目录:为宋体、小四、黑色3、章节内容:(1)标题:章节目分别以“第一章、第二章、第三章”“1.1、1.2、1.3”和“(1)(2)(3)”来表示。章为宋体、小二、黑体,节为宋体、四号、黑体,目为宋体、小四、黑体。 (2)文字:每四个小时的培训课程,字数控制在10000——20000字之间。教材文字一般为宋体、小四、黑色,行间距为一行半。(3)内容:章节内容要有完整的理论体系,不能成为授课胶片的翻版。4、学习要求:每章标题下面为本章的学习要求,以明确本章要掌握的要点。文字为楷体、小四。5、思考题:每章最后要有思考题,以便帮助学员复习、思考。6、参考资料和相关网站:有参考资料和相关网站的要附在课程后面,以便帮助学员查阅。页码,1/31附件三:教材模板2011-1-23mhtml:mk:@MSITStore:D:\MazeShare\文档\华为C++中级培训资料(CHM).chm:...内内内内部部部部资资资资料料料料,,,,注意保密注意保密注意保密注意保密 C++C++C++C++中中中中级级级级培培培培训训训训教教教教程程程程员员员员工培工培工培工培训训训训中心中心中心中心 编辑编辑编辑编辑2005年6月V1.0页码,2/31附件三:教材模板2011-1-23mhtml:mk:@MSITStore:D:\MazeShare\文档\华为C++中级培训资料(CHM).chm:...华为华为华为华为技技技技术术术术有限公司有限公司有限公司有限公司前前前前言言言言 C++语言中级教材讲授C++语言的运用技术,包括:类、对象之间的关系、对象的存储与布局、运算符重载、智能指针、仿函数、泛型编程,C++模式设计基本思想。 页码,3/31附件三:教材模板2011-1-23mhtml:mk:@MSITStore:D:\MazeShare\文档\华为C++中级培训资料(CHM).chm:... NE002009cV1.0 1111 业务与软件C++语言项目C++C++C++C++进阶进阶进阶进阶目目目目录录录录第一章第一章第一章第一章类类类类、、、、接口接口接口接口 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………77771.11.11.11.1 HHHHandle-Body与与与与接口接口接口接口、、、、抽象接口抽象接口抽象接口抽象接口 …………………………………………………………………………………………………………………………………………………………………………77771.21.21.21.2 多多多多继继继继承承承承、、、、与与与与菱形缺陷菱形缺陷菱形缺陷菱形缺陷、、、、thisthisthisthis跳跳跳跳转转转转等等等等………………………………………………………………………………………………………………………………………………………………131313131.31.31.31.3 C++C++C++C++多多多多态态态态的的的的两两两两种种种种多多多多态态态态形式和形式和形式和形式和区区区区别别别别……………………………………………………………………………………………………………………………………………………………………………………18181818第二章第二章第二章第二章重重重重载载载载………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………18181818页码,4/31附件三:教材模板2011-1-23mhtml:mk:@MSITStore:D:\MazeShare\文档\华为C++中级培训资料(CHM).chm:...2.1函函函函数数数数重重重重载载载载………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………192.2运运运运算符重算符重算符重算符重载载载载…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………20第三章第三章第三章第三章模板模板模板模板………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………292929293.1模模模模块块块块函函函函数数数数 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………292929293.2模模模模块类块类块类块类……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………313131313.3STL标标标标准模板准模板准模板准模板库库库库…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………34附附附附录录录录::::参参参参考考考考资资资资料料料料………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………39393939 页码,5/31附件三:教材模板2011-1-23mhtml:mk:@MSITStore:D:\MazeShare\文档\华为C++中级培训资料(CHM).chm:...前言前言前言前言我们在C++基础课程中已经了解了C++的一些基本概念,知道了什么是类什么是对象。也了解了继承、封装、多态等C++面向对象的基本特征,本课程主要是更进一步探讨一下C++一些基本模型的应用,加深对概念的理解,由于课程时间有限,C++,模型和内容又如此之多,对任何一个模型都无法深入进去,所以只能泛泛而谈。第一章第一章第一章第一章类类类类、、、、接口接口接口接口学学学学习习习习要求要求要求要求::::1、了解类的继承、封装等概念之间的关系2、了解什么是接口,什么是虚函数,它有什么样的特点。学会使用接口编程的思想本章节主要介绍C++中的类、接口。类,包涵了一组数据和一组基于数据上的一组方法。它描述了一个对象的属性、状态和行为;接口,它只是描述了一个对象的简单的行为。有有有有关类关类关类关类的基本的基本的基本的基本概概概概念念念念::::ClassnamesClassmembersMemberFunctionsStaticMemberFunctionsUnionsC++BitFieldsNestedClassDeclarationsTypeNamesinClassScopeMultipleBaseClassesVirtualFunctionsAbstractClassesControllingAccesstoClassMembersprivateMembersprotectedMemberspublicMembersAccessSpecifiersforBaseClasses,priavte,public、protectedFriendsConstructorsDestructorsConversionFunctionsthenewoperatorandthedeleteoperatorCopyingConstructorFunctionsInterface页码,6/31附件三:教材模板2011-1-23mhtml:mk:@MSITStore:D:\MazeShare\文档\华为C++中级培训资料(CHM).chm:...1.11.11.11.1Handle-Body与与与与接口接口接口接口、、、、抽象接口抽象接口抽象接口抽象接口在C++中封装的概念是把一个对象的外观接口同实际工作方式(实现)分离开来,但是C++的封装是不完全的,编译器必须知道一个对象的所有部分的声明,以便创建和管理它。我们可以想象一种只需声明一个对象的公共接口部分的编程语言,而将私有的实现部分隐藏起来。C++在编译期间要尽可能多地做静态类型检查。这意味着尽早捕获错误,也意味着程序具有更高的效率。然而这对私有的实现部分来说带来两个影响:一是即使程序员不能轻易地访问实现部分,但他可以看到它;二是造成一些不必要的重复编译。然而C++并没有将这个原则应用到二进制层次上,这是因为C++的类既是描述了一个接口同时也描述了实现的过程,示例如下:classCMyString{private:constintm_cch;char*m_psz;public:CMyString(constchar*psz);~CMyString();intLength()const;intIndex(constchar*psz)const;}CMyStirng对外过多的暴露了内存布局实现的细节,这些信息过度的依赖于这些成员变量的大小和顺序,从而导致了客户过度依赖于可执行代码之间的二进制耦合关系,这样的接口不利于跨语言跨平台的软件开发和移植。1.1.1Handle-Body模式解决这个问题的