- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C中级培训课件_v0.1解读
算法 * 主要由头文件algorithm,numeric和functional组成 algorithm是所有STL头文件中最大的一个,它是由一大堆模版函数组成的,可以认为每个函数在很大程度上都是独立的,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、移除、反转、排序、合并等。 numeric体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作。 functional中则定义了一些模板类,用以声明函数对象。 课后思考 * 如何防止默认拷贝函数“值传递”的发生? 如何通过STL标准模板实现计费入口文件按生成时间排序功能? 参考资料 * C++ Programming Language C++ Primer effective c++ C++ Templates STL源码剖析 * Thanks for Your Listening! 感谢聆听! 对象切片通常发生在子类对象被赋值到父类对象,由于子类在继承父类时,通常会增加一些变量或函数,这样子类的大小比父类大,则在赋值时,子类对象拷贝到父类对象不完全,即发生切片现象。 * * 关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。 * 虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。 * 虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。 * 为什么引入纯虚函数? 很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。为了解决该问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtual ReturnType Function()= 0;),则编译器要求在派生类中必须予以重写以实现多态性。 * * * 圈子: 报工项目编号 总体进度 组织结构、联系方式 * 王慧清 C++中级培训 课程内容 * 类 接口 模板 STL标准模板库 类 * namespace Class names Class members Member Functions Static Member Functions Unions 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 申明,在内存中永远只有一份实例 是类的对象所共有的 静态成员变量可以被成员函数访问,但静态成员函数只能访问
文档评论(0)