摘要: 1.容器中循环时判断的操作有时可以通过对容器进行特殊的处理而避免。 ①例如插入排序中判断是否插入在第一个元素,可以通过将最小元素放在容器初始位置而避免。 ②归并排序中判断是否到容器尾部,可以通过在尾部加入一个比任何元素都大的元素而避免(标志关键字),也可以将容器变成bitonic(元素大小先增大后减 阅读全文
posted @ 2021-07-21 20:34 放不下的小女孩 阅读(75) 评论(0) 推荐(0)
摘要: 1.RTTI①需要额外的空间以存储类型信息,通常是一个指针,指向某个类型信息节点。②需要额外的时间以决定执行期的类型。 2.编译器为了支持RTTI策略,给需要多态的类声明一个或多个虚函数,把与该类相关的类型信息(类型描述器type_info)对象都放进虚函数表中(通常放入第一个slot,他是被编译器 阅读全文
posted @ 2021-07-03 18:41 放不下的小女孩 阅读(68) 评论(0) 推荐(0)
摘要: 1.C++的异常处理由三个主要的语汇组件构成 ①一个throw子句。他在程序某处发出一个异常。被抛出的异常可以使内置类型也可以是使用者自定义的类型。 ②一个或多个catch子句。每一个catch都是一个异常处理器,负责在封闭的区段处理异常 ③一个try区段。他被围绕以一系列的程序局,这些城数据可能会 阅读全文
posted @ 2021-07-02 17:03 放不下的小女孩 阅读(42) 评论(0) 推荐(0)
摘要: 一、模板的实例化 1.模板类中定义的静态成员变量和枚举类型必须等到该模板实例化之后才可以使用,并且必须显式的指定类型。 template <class Type> class Point { public: enum Status{unallocated,normalized}; private: 阅读全文
posted @ 2021-07-01 23:38 放不下的小女孩 阅读(69) 评论(0) 推荐(0)
摘要: 1.是否会产生一个临时对象,视编译器的进取性和代码操作发生时的语境而定。C++标准中指出编译器对临时性对象有完全的自由度。 2.在新开辟的内存上以拷贝的方式构造对象时,几乎所有编译器都不会产生一个临时性对象。 T c=a+b; //其中加法运算符形式如下: T operator+(const T&, 阅读全文
posted @ 2021-07-01 12:05 放不下的小女孩 阅读(60) 评论(0) 推荐(0)
摘要: 一、普通new运算符和delete运算符 1.new运算符和delete运算符实际上都由由两个步骤组成: new运算符: ①分配所需的内存:通过调用适当库的new运算符函数来分配内存(实际上所有new运算符都是由malloc完成,自己重载new时也应该用malloc分配内存,delete都由free 阅读全文
posted @ 2021-06-30 12:35 放不下的小女孩 阅读(139) 评论(0) 推荐(0)
摘要: 一、全局变量 全局变量要求在第一次执行前就被准备好,在程序结束时被销毁。因为构造函数在执行期才能实施,所以需要对一个全局对象做静态初始化。如下面代码所示,后三行的对象没法在编译器完成初始化(都是非常量表达式),所以需要静态初始化并且也需要内存静态释放操作(静态意思是看起来像在程序执行前构造或者在程序 阅读全文
posted @ 2021-06-29 12:12 放不下的小女孩 阅读(66) 评论(0) 推荐(0)
摘要: 1.如果类没有定义析构函数,那么只有在class内含的成员变量或自己的基类含有析构函数的情况下,才需要析构函数。(此时编译器会自动合成也不会被调用)。 2.编译器扩展析构函数的顺序 ①析构函数的本体被执行 ②如果类拥有含有析构函数的类成员对象,则他们会以声明的相反顺序被调用。 ③如果类含有一个vpt 阅读全文
posted @ 2021-06-29 10:58 放不下的小女孩 阅读(86) 评论(0) 推荐(0)
摘要: 一、构造函数 1.虚继承体系下的构造函数 为了满足虚继承只有一个虚基类子对象的条件(即由最顶层的派生类调用虚基类的构造函数来初始化虚基类子对象),编译器在构造函数中加入一个参数bool _most_derived来判断是否是顶层派生类,如果是则调用拷贝构造函数。可能的伪码如下。 Point3d *P 阅读全文
posted @ 2021-06-28 21:49 放不下的小女孩 阅读(116) 评论(0) 推荐(0)
摘要: 这一章讲的东西很杂、所以我只归纳并延伸了一下标题提到的东西。比如这篇写一下纯虚函数和聚合类的构造。 一、纯虚函数: 1.含有纯虚函数的类不能有实例,所以一般纯虚函数没有定义。但是纯虚还是是可以加上定义并且也能够被调用的,但是必须满足以下条件(结合了C++Primer的知识点) ①纯虚函数的定义必须在 阅读全文
posted @ 2021-06-28 12:44 放不下的小女孩 阅读(186) 评论(0) 推荐(0)