内存管理
SimonxxSun
这个作者很懒,什么都没留下…
展开
-
C++对象模型:执行期语意学
目录执行期发生的转换一 、对象的构造和解构(构造和析构必须调用时)全局对象局部静态对象default constructor和数组二、new和delete运算符针对数组的new语意Placement Operator new 语意三、临时性对象执行期语义主要从一下两个方面展开:执行期发生的一些转换。 临时性对象。执行期发生的转换一 、对象的构...转载 2019-05-14 16:50:25 · 240 阅读 · 0 评论 -
C++对象模型:构造、析构、拷贝语意学
目录1、有关纯虚函数2、无继承情况下的函数构造2.1struct 构造2.2抽象数据类型2.3有虚函数的情况3.继承体系下的对象构造3.1概述3.2虚拟继承的情况3.3vptr的初始化4.对象复制语意学5.析构函数语意学1、有关纯虚函数抽象基类的数据成员初始化如果一个类被声明为抽象基类(其中有 purevirtual function),则...转载 2019-05-14 16:49:38 · 340 阅读 · 0 评论 -
图说C++对象模型:对象内存布局详解
目录1.何为C++对象模型?2.文章内容简介3.理解虚函数表3.1.多态与虚表3.2.使用指针访问虚表4.对象模型概述4.1.简单对象模型4.2.表格驱动模型4.3.非继承下的C++对象模型5.继承下的C++对象模型5.1.单继承5.2.多继承5.2.1一般的多重继承(非菱形继承)5.2.2 菱形继承6.虚继承6.1.虚基类表解析...转载 2019-05-14 16:50:18 · 370 阅读 · 0 评论 -
C++ 内存管理(三)malloc/free
windows 下 VC 6.0 运行 C++ 程序的流程:call stack 调用栈VC 10 中对小块内存的管理转移到 HeapAlloc 中实现。_heap_init() 中实现的就是分配16个 header,由_sbh_pHeaderList维护借助 SBH 实现的这种结构去管理 1GB 内存,实现了 快速的内存分配与回收、碎片消除。...原创 2019-05-14 16:52:37 · 281 阅读 · 1 评论 -
C++ 内存管理(二)std::allocator
目录一、VC6 标准分配器的实现二、G2.9 分配器的实现三、G2.9 std::alloc 源码剖析3.1 alloc 类基本设计3.2 refill 函数3.3 chunk alloc 函数四、std::alloc 运行细节观察一、VC6 标准分配器的实现VC 中的 allocator 只是实现了到 _Allocator -> operato...原创 2019-05-14 16:52:48 · 785 阅读 · 0 评论 -
C++ 内存管理(一)primitives 基础工具
目录一、四种基础工具的使用1.1 四种工具的介绍1.1.1 new、::operator new()、malloc 三者之间的关系1.1.2delete、free1.1.3 array new、array delete1.1.4 placement new1.2 实现内存管理工具的重载1.2.1 重载全局版本 ::operator new /::op...原创 2019-05-14 16:53:10 · 372 阅读 · 0 评论 -
C++对象模型:函数语意学
概述C++支持三种类型的成员函数有:static、nonstatic、和 virtual,每一种类型被调用的方式都不相同。不同类型的成员函数的调用会有不同的表现,以下对每一种类型的成员函数进行简单的分析。1.Nonstatic Member Functions 非静态成员函数为了使 nonstatic member function 能够与非成员函数具有相同的效率,C++ 编译器内部...转载 2019-05-14 16:55:36 · 173 阅读 · 0 评论