自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度探索C++对象模型第五章 构造、解构、拷贝语义学

5.2  继承体系下的对象构造一般而言编译器所做的扩充操作大约如下:1、记录在initializataion list 中的data members 初始化裁做会被放进 constructor的函数本身,并以members 的声明顺序为顺序。2、如果有一个member 没出现在member initialization list 之中,但是他又一个default constructor ,那么

2002-07-01 14:22:00 1325 2

原创 深度探索C++对象模型第四章 Data 语意学

4.1 Member的各种调用方式   Nonstatic Member Functions : 速度和一般的Nonmember function 有相同的效率。 编译器会对nonstatic member function进行改造。加入this参数,改变函数内部的对member data 的使用方法,改变函数的名字--相当于nonmember function . 这里面有一个函数名字的处理

2002-07-01 14:21:00 1064

原创 深度探索C++对象模型第二章 构造函数语义学

2.1  Default Constructor 的建构操作default constructors 在需要的时候才会被编译器产生出来。只有当编译器需要default constructor的时候才会合成出一个constructor, 只有下面的四种情况才会有nontrivial default constructor产生,其余的都是trivial default constructor1)

2002-07-01 14:20:00 1221

原创 深度探索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 1083

原创 深度探索C++对象模型第一章 关于对象

C语言中,“数据”和“处理数据的操作”十分开来的。由一组“分布在各个一功能味道想得函数中”的算法所驱动,他们处理的是共同的外部数据。而在C++中,则使用的是独立的“抽象数据类型abstract data type(ADT)”所驱动。从软件工程的角度看“一个ADT或CLASS hierar5chy的数据封装”比"在C程序中程序迎的使用全局数据好"。加上封装后的布局成本C++在布局以及存取时间上的额外

2002-07-01 14:19:00 1447

原创 深度探索C++对象模型第六章 执行其语义学

6.1  对象的构造和解构对象的解构发生在离开当前区域之前,而不是说大括号之前对象数组:编译器调用一个宁为vec_new()的函数,产生出以class object对象构造而成的数组。void * vec_new(void * array,      //  数组的起始地址                size_t elem_size,  //  每个class object的大小   

2002-07-01 14:19:00 1104

原创 深度探索C++对象模型第七章 站在对象模型的尖端

7.1 Template Template的“具现“行为 (template instantiation)编译器看到template的声明,并不做任何的事情,只有等到template instantiation的时候, 定义出一个template class object 或者 template class refrence(引用必须初始化),才会相应的准备template class 内

2002-07-01 14:18:00 1076

原创 STL 之 Introducntion

STL, is a C++ library of container classes, algorithms, and iterators;  almost every component in the STL is a template.  Containers and algorithmsThe STL includes the classes vector, list, deque,

2002-06-28 13:50:00 1039

原创 STL 之 Container Concepts

Container:   描述:存放各种元素,每个Container必须要有相应的Iterator,元素的存放顺序不定。也许每次Iterator遍历Container的时候,每次的访问顺序都可能不一样,而且Container不能保证在同一时刻有超过一个Iterator有效。Container自己拥有包含的元素(如果是指针Container,那么就仅仅是对指针游泳所有权,而不是指针指向的对象)。Co

2002-06-28 13:50:00 1168

原创 C++编程思想笔记之四

第09章  命名控制一、来自C 语言中的静态成员在C 和C + +中,static都有两种基本的含义,并且这两种含义经常是互相有冲突的:1) 在固定的地址上分配,也就是说对象是在一个特殊的静态数据区上创建的,而不是每次函数调用时在堆栈上产生的。这也是静态存储的概念。2) 对一个特定的编译单位来说是本地的(就像我们在后面将要看到的,这在C++中包括类的范围)。这里static控制名字的可见性

2002-06-17 09:34:00 1393

原创 C++编程思想笔记之一

第1章  对象的演化一、多态性的解释:   当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型的成员,而把它看作基本类型成员,这样就可以编写不依赖于特殊类型的代码。在形体例子中,函数可以对一般形体进行操作,而不关心它们是圆、正方形还是三角形。所有的形体都能被绘制、擦除和移动,所以这些函数能简单地发送消息给一个形体对象,而不考虑这个对象如何处理这个消息。这样,新添类型不影响原来的代码

2002-06-17 09:21:00 1863

原创 C++编程思想笔记之三

第7章   常量一、值替代:用C 语言进行程序设计时,预处理器可以不受限制地建立宏并用它来替代值。因为预处理器只做文本替代,它既没有类型检查思想,也没有类型检查工具,所以预处理器的值替代会产生一些微小的问题,这些问题在C + +中可通过使用const而避免。C + +中的const 默认为内部连接,也就是说,const 仅在const 被定义过的文件里才是可见的,而在连接时不能被其他编译单元看

2002-06-17 09:21:00 1439

原创 C++编程思想笔记之五

第10章   引用和拷贝构造函数一、使用引用时有一定的规则:1) 当引用被创建时,它必须被初始化。(指针则可以在任何时候被初始化。)2) 一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。(指针则可以在任何时候指向另一个对象。)3) 不可能有N U L L 引用。必须确保引用是和一块合法的存储单元关连。 二、参数传递准则当给函数传递参数时,人们习惯上应该是通过常量

2002-06-17 09:21:00 1391

原创 C++编程思想笔记之六

第13章  继承和组合一、继承和组合组合:简单地创建一个包含已存在的类对象的新类,这称为组合,因为这个新类是由已存在类的对象组合的。对于新类的public接口函数,包含对嵌入对象的使用,但不必模仿这个嵌入对象的接口。继承:创建一个新类作为一个已存在类的类型,采取这个已存在类的形式,对它增加代码,但不修改它。二、构造函数和析构函数的次序构造在类层次的最根处开始,而在每一层,首先调

2002-06-17 09:20:00 1502 2

原创 C++编程思想笔记之二

第3章   隐藏实现一、C++的存取控制 public 意味着在其后声明的所有成员对所有的人都可以存取。public成员就如同一般的struct成员。private关键字则意味着,除了该类型的创建者和类的内部成员函数之外,任何人都不能存取这些成员。private在设计者与用户之间筑起了一道墙。如果有人试图存取一个私有成员,就会产生一个编译错误。protected与private基本相似,只有一

2002-06-14 09:26:00 1565

空空如也

空空如也

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

TA关注的人

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