深度探索C++对象模型
文章平均质量分 56
jinfeng_wang
这个作者很懒,什么都没留下…
展开
-
深度探索C++对象模型第四章 Data 语意学
4.1 Member的各种调用方式 Nonstatic Member Functions : 速度和一般的Nonmember function 有相同的效率。 编译器会对nonstatic member function进行改造。加入this参数,改变函数内部的对member data 的使用方法,改变函数的名字--相当于nonmember function . 这里面有一个函数名字的处理原创 2002-07-01 14:21:00 · 1093 阅读 · 0 评论 -
深度探索C++对象模型第一章 关于对象
C语言中,“数据”和“处理数据的操作”十分开来的。由一组“分布在各个一功能味道想得函数中”的算法所驱动,他们处理的是共同的外部数据。而在C++中,则使用的是独立的“抽象数据类型abstract data type(ADT)”所驱动。从软件工程的角度看“一个ADT或CLASS hierar5chy的数据封装”比"在C程序中程序迎的使用全局数据好"。加上封装后的布局成本C++在布局以及存取时间上的额外原创 2002-07-01 14:19:00 · 1474 阅读 · 0 评论 -
深度探索C++对象模型第二章 构造函数语义学
2.1 Default Constructor 的建构操作default constructors 在需要的时候才会被编译器产生出来。只有当编译器需要default constructor的时候才会合成出一个constructor, 只有下面的四种情况才会有nontrivial default constructor产生,其余的都是trivial default constructor1)原创 2002-07-01 14:20:00 · 1251 阅读 · 0 评论 -
深度探索C++对象模型第三章 Data 语意学
C++ standard 不强制规定“base class sunjects的排列次序”“不同存取层记得data members的排列次序” ,也不规定“virtual funcitons 和 virtual base class“的实现细节3.1 Data member 的布局C++ standard要求:在同一个access section 的member 按次序排列,而各自之间不一定原创 2002-07-01 14:20:00 · 1112 阅读 · 0 评论 -
深度探索C++对象模型第五章 构造、解构、拷贝语义学
5.2 继承体系下的对象构造一般而言编译器所做的扩充操作大约如下:1、记录在initializataion list 中的data members 初始化裁做会被放进 constructor的函数本身,并以members 的声明顺序为顺序。2、如果有一个member 没出现在member initialization list 之中,但是他又一个default constructor ,那么原创 2002-07-01 14:22:00 · 1368 阅读 · 2 评论 -
深度探索C++对象模型第六章 执行其语义学
6.1 对象的构造和解构对象的解构发生在离开当前区域之前,而不是说大括号之前对象数组:编译器调用一个宁为vec_new()的函数,产生出以class object对象构造而成的数组。void * vec_new(void * array, // 数组的起始地址 size_t elem_size, // 每个class object的大小原创 2002-07-01 14:19:00 · 1114 阅读 · 0 评论 -
深度探索C++对象模型第七章 站在对象模型的尖端
7.1 Template Template的“具现“行为 (template instantiation)编译器看到template的声明,并不做任何的事情,只有等到template instantiation的时候, 定义出一个template class object 或者 template class refrence(引用必须初始化),才会相应的准备template class 内原创 2002-07-01 14:18:00 · 1103 阅读 · 0 评论