Inside The C++ Object Model(一)关于对象
来源:互联网 发布:电脑k歌软件 编辑:程序博客网 时间:2024/06/06 03:34
一 C++对象模式:
(1)数据成员:
*Non-static data members:对象内部。
*Static data members:对象外部。
(2)成员函数:
*Static和Non-static function members:对象之外。
*Virtual function:指向虚函数表(virtual table)的指针vptr放在对象内部。
(3)虚函数:
*每个class产生一堆指向virtual functions的指针,放在虚函数表(virtual)中。
*每个class对象包含一个执行virtual table的指针vptr。
(4)继承模型:
*数据成员:base class subobject的data members被直接置于derived class object中。
*虚继承:
~扩充已存在的virtual table,以便维护每一个virtual base class的位置(gcc).
~导入一个virtual base class table.(vc6.0)
二 关键字带来的差异。
三 对象的差异:
(1)C++支持三种程序设计典范(programming paradigms):
*程序模型:像C一样。
*抽象数据类型模型:如string class。
*面向对象模型。
*注意:纯粹以一种paradigm写程序,有助于整体行为的良好稳固,混合不同paradigms可能带来不好结果。
(2)对象的大小:
*nonstatic data members的总和大小。
*加上由于任何alignment的需求而填补上去的空间(可能存在于members之间,也可能存在于集合体边界)。
*为了支持virtual而由内部产生的任何额外负担。
(3)指针类型:
*不管指针指向什么类型,指针本身所需的内存大小是固定的。
*"指向不同类型指针的差异":既不在指针表示方法不同,也不在其内容(代表一个地址)不同,而在其所寻址出来的对象不同。
*"指针类型":会教导编译器如何解释某个特定地址的内存内容以及大小。
*void*指针只能含有一个地址,不能通过它操作对象的原因就是上述。
*"转型":并不改变一个指针所含的真正地址,只影响“被指出之内存和其内容”的解释方式。
(4)多态:
- Inside The C++ Object Model(一)关于对象
- Inside The C++ Object Model 学习笔记 -- 关于对象
- Inside The C++ Object Model 学习笔记 -- 关于对象
- Inside the C++ Object Model 第一讲: 关于对象
- 读书笔记《Inside the C++ Object Model》:关于对象
- 《Inside The C++ Object Model》临时对象
- Inside The C++ Object Model (一)
- Inside The C++ Object Model (深度探索C++对象模型) 第一讲 关于对象
- C++对象模型,很多东西来自《Inside the C++ Object Model》一书
- Inside The C++ Object Model
- Inside the C++ Object Model
- 《Inside the C++ Object Model》
- Inside The C++ Object Model
- Inside The C++ Object Model
- Inside The C++ Object Model
- inside the c++ object model
- C++对象模型《Inside the C++ Object Model》
- Inside The C++ Object Model ---- Object Lessons
- centos 下安装jdk7报错,error: unpacking of archive failed on file /usr/java/jdk1.7.0_21/jre/lib/amd64/libj
- Oracle--重建一个新的表空间目录
- java UUID生成
- vb.net调用webService源码
- Win7 IIS配置及发布网站
- Inside The C++ Object Model(一)关于对象
- Spring MVC拦截器实现分析
- Ubuntu Unity 桌面图标消失
- ubuntu小结
- Inside The C++ Object Model(二)构造函数语意学
- Java Sax解析XML文件
- Inside The C++ Object Model(三)Data语意学
- Android 实现再按一次后退键退出应用程序
- Inside The C++ Object Model(四)函数语意学