c中级培训内容摘要:

和 d e l e t e – 控制动态内存分配,当创建一个 n e w表达式时有两件事发生。 首先,使用运算符 n e w分配内存,然后调用构造函数。 在 d e l e t e表达式里,调用析构函数,然后使用运算符 d e l e t e释放内存。 我们永远无法控制构造函数和析构函数的调用(否则我们可能意外地搅乱它们),但可以改变内存分配算法 n e w和 d e l e t e 培训中心版权所有,未经许可不得向外传播,违者必究 特殊的运算符重载(二) • 逗号运算符 –当逗号出现在逗号运算对象左右时,逗号运算符被调用。 然而,逗号运算符在函数参数表中出现时不被调用 • 重点介绍的运算符 –转换运算符 –运算符 amp。 (地址) –运算符 –运算符 ( ) 培训中心版权所有,未经许可不得向外传播,违者必究 转换运算符 • 转换函数名称 – operator 转换数据类型名,如 MFC 中的 operator LPCSTR • 作用 – 通过在关键字 operator后跟随想要转换到的类型的方法,将当前类型转换为希望的类型 • 构造转换 amp。 运算符转换 – 用构造函数技术,目的类执行转换。 然而使用运算符技术,是源类执行转换 – 构造函数技术的价值是在创建一个新类时为现有系统增加了新的转换途径。 然而,创建一个单一参数的构造函数总是定义一个自动类型转换(即使它有不止一个参数也是一样,因为其余的参数将被缺省处理),这可能并不是我们所想要的。 另外,使用构造函数技术没有办法实现从用户定义类型向内置类型转换,这只有运算符重载可能做到。 培训中心版权所有,未经许可不得向外传播,违者必究 运算符 amp。 • 应用: – 标准模板库中的 std::auto_ptr – COM中的 CComPtr • 重载缺陷: – 地址是一个对象的及其基本的特性,如果某类型重载 amp。 运算符,该类型将无法参与泛型编程 – 对于 smart ptr 实施的 amp。 运算,意味着完全放弃了对拥有权的自动管理。 当客户直接访问原生对象的时候,smart ptr 将失去它的辅助作用效应 培训中心版权所有,未经许可不得向外传播,违者必究 运算符 • Operator 机制 –当你对某一型别实施 operator,而该型别并非原生指针时,编译器会继续对执行的结果实施 operator,直到得到一个原生指针 • 作用 – Smart Pointer的应用 –可以对对象的成员函数实施“前调用”及“后调用” (pre and post function calls) 培训中心版权所有,未经许可不得向外传播,违者必究 运算符 ( ) • functors or function objects • 特点 –申明象对象(实际上也是对象),调用象函数 • 应用 –广泛应用于 STL的各种算法,实施函数配接 培训中心版权所有,未经许可不得向外传播,违者必究 运算符重载的运用 • 智能指针 • 仿函数 培训中心版权所有,未经许可不得向外传播,违者必究 智能指针 • 关键点 –重载“ ”运算符的对象 • 作用 在多线程编程中自动进行加解锁操作 自动实施对象引用连接计数,进行对象的生命周期管理 培训中心版权所有,未经许可不得向外传播,违者必究 仿函数 • 关键点 –重载“ ()”运算符 • 作用 主要用于函数配接,参数配接,广泛应用于 STL 培训中心版权所有,未经许可不得向外传播,违者必究 第三章:模 板 • 基本概念 • 基本语法 • 模板设计中的非习惯性思维 • 模板设计的基本方法 • 方法设计示例 • STL标准模板库 • 模板的佳作 培训中心版权所有,未经许可不得向外传播,违者必究 基本概念 • typename • Function Templates • Class Templates • STL(Standard Template Library) • functors、 function adpters • containers、 iterator、 traits、 vector、 list、 deque、stack、 queue、 heap、 set、 map、 hashtable、RBtree • stlport、 boost、 loki 培训中心版权所有,未经许可不得向外传播,违者必究 基本语法 • template [typelist] [, [ arglist ]] declaration 这个 template描述了一个参数化的类(模板类)或者是一个参数化的函数(模板函数),这个模板参数列表是用逗号分隔的类型列表(在这个表单忠使用 class 或者是 typename 来标识这个数据类型)。 在某些情况下这个模板体内可能不存在任何的数据类型。 declaration 域必须是一个函数或者类的声明 培训中心版权所有,未经许可不得向外传播,违者必究 模板设计中的非习惯性思维 • 申明并不一定要定义 • 定义类不一定要有成员、成员不仅仅是方法和成员变量 培训中心版权所有,未经许可。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。