
C++
文章平均质量分 94
EverlightGe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
stl源码剖析之空间配置器
一.理解new与delete 通常我们这样申请与释放C++内存 class Foo{…}; Foo* pf=new Foo(); delete pf; 在这段代码中,new包括3个过程。 1).调用operator new分配内存。 2).调用Foo::Foot()构造对象。 3).返回指针pf。同理,delete包括new相反的过原创 2016-09-02 01:14:20 · 448 阅读 · 0 评论 -
转:C/C++内存管理详解 堆 栈
这里写链接内容内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权转载 2017-02-05 11:36:32 · 335 阅读 · 0 评论 -
Inside the C++ Object Model 第一讲: 关于对象
在C语言中,我们如果想声明一个struct Point3d,像这样:typedef struct Point3d{ float x; float y; float z; }Point3d;某个点特定的坐标可以直接存取,如:Point3d pt; pt.x=0.0;在C++中,Point3d有可能采用独立的”抽象数据类型(abstract data type, ADT)”来实现原创 2017-07-09 12:02:20 · 1686 阅读 · 0 评论 -
Inside the C++ Model第二讲之 Default Constructor的构造操作
**Default Constructor的构造操作** “带有Default Constructor”的Member Class Object 如果一个class没有任何constructor,但它内含一个member object, 而后者有default constructor,那么这个class的implicit default constructor就是”nontrivial”,编译器原创 2017-07-22 22:21:16 · 380 阅读 · 0 评论 -
Inside the C++ Model第二讲之 Copy Constructor的构造操作
Default Memberwise Initialization如果class没有提供一个explicit copy constructor又当如何呢?当class object以”同一个class的另一个object”作为初值,其内部是以default memberwise initialization来完成的.也就是把每一个内建的或派生的data member(例如一个指针或一个数组),从某一原创 2017-07-22 22:29:58 · 389 阅读 · 0 评论 -
Inside the C++ Model第二讲之 程序转化语意学(Program Transformation)
发现这篇博客 深度探索C++对象模型—程序转化语意学写的非常好,就直接转载过来 以下包括编译器调用拷贝构造函数的策略,以及这些怎么影响程序,拷贝构造函数的应用,使编译器作一些转化 编译器通常的3种转化 1显示的初始化操作的转化 如果定义 X x0;对于下图三种显示初始化: 编译器对程序的转化包括两个阶段 (1)重写每一个定义,并且其中的初始化操作会被剥夺 (2)class的拷贝构造转载 2017-07-22 22:41:14 · 418 阅读 · 0 评论 -
Inside the C++ Model第二讲之 成员初始化列表(Member Initialization List)
对于C++的成员初始化列表(member initialization list),在以下情况下必须使用 1 当初始化一个reference member时 2 当初始化一个const member时 3 当调用一个base class的构造函数,而它拥有一组参数时 4 当调用一个member class的constructor,而它拥有一组参数时。 例如:class Word {原创 2017-07-22 22:44:29 · 429 阅读 · 0 评论