自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 [读书笔记] 深入探索C++对象模型-第七章-站在对象模型的尖端(中)

继续整理最后一章的内容,这一篇是关于异常处理的。注:初学markDown,所得尚少,排版简陋,多多包涵欲支持异常处理,编译器的主要工作是找出catch子句,追踪程序堆栈中每一个函数的当前作用域,编译器必须提供某种查询异常对象的方法,以知道其实际类型(RTTI来源),最后,编译器还需要某种机制管理被丢出的对象,包括其产生,存储,析构,清理。C++异常处理语法由三部分组成: 1. throw,抛出异常

2016-10-26 22:00:37 410

原创 解析C++中的new、operator new、operator new[]和delete、operator delete、operator delete[](下)

注:以下测试均在VS2015下进行,其他编译器可能会有轻微差别。继续整理第二部分的内容。二、operator new/delete,以及其对应的数组版本new[]/delete[]。operator new优先调用全局重载的,所以::operator new(sizeof(COperatorTest))和operator new(sizeof(COper

2016-10-23 23:28:13 1972

原创 解析C++中的new、operator new、operator new[]和delete、operator delete、operator delete[](上)

最近在为一个Base项目实现需求,看到了大量的重载operator new/delete的轮子代码,而这方面之前并没有过多去关注,于是花了点时间,查一查资料,写了写Demo的代码,总算是对C++中new/delete这一家族的成员有了个了解。我们一一来看。1. new/delete以及对应的数组版本new[]/delete[]操作符(operator)。这两组可以看作是一家的,也是我们

2016-10-19 23:28:06 2350

原创 [读书笔记] 深入探索C++对象模型-第七章-站在对象模型的尖端(上)

整理最后一章的内容,关于模板,异常处理以及运行时类型信息的(RTTI: Run Time Type Information)。

2016-10-17 23:20:22 406

原创 [读书笔记] 深入探索C++对象模型-第六章-执行期语义学(下)

继续整理第六章剩下的内容,关于临时对象的几条准则。1. 在某些情况下,编译器可以产生必要的,或者可以带来方便的临时对象,具体行为由编译器来定义。例如,对于如下操作:T a, b;T c = a + b;//T operator+ (const T&, const T&)a. 编译器会产生一个临时对象,放置a+b的结果,然后使用T的拷贝构造函数,把临时对象当作c的初始值。b. 另外一种

2016-10-11 21:26:47 348

原创 [读书笔记] 深入探索C++对象模型-第六章-执行期语义学(中)

国庆假期小栖,继续整理第六章的内容。关于new和delete运算符。a. 使用new运算符构造对象时, 例如:Point3d* origin = new Point3d;会被转化为两个操作:分配空间和调用类的构造函数:Point3d* origin;if(origin = __new(sizeof(Point3d))){ origin = Point3d

2016-10-08 23:57:53 308

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除