深入探索C++对象模型
文章平均质量分 90
walkerkalr
学无止境,梦想不止
展开
-
深度探索C++对象模型:5.构造、析构、拷贝语意学
第五章:构造、析构、拷贝语意学 考虑下面这个abstract base class声明: class Abstract_base{ public: virtual ~Abstract_base() = 0; virtual void interface() const =0; virtual const char* mumble()原创 2014-01-10 11:36:48 · 1294 阅读 · 0 评论 -
深度探索C++对象模型 2构造函数语意学
第二章 构造函数语意学 本章大量出现的英语术语: trivial: 没有用的 nontrivial: 有用的 memberwise: 对每一个member施以… bitwise: 对每一个bit施以… named return value optimization (NRV) 2.1Default Constructor的构造操作 对于一个类,如果没有任何构造函数的声明,那么原创 2014-01-03 15:52:21 · 1183 阅读 · 0 评论 -
深度探索C++对象模型:4.Function语意学
第四章: Function语意学 Nonstatic Member Functions(非静态成员函数) Point3d obj; Point3d *ptr = &obj; Point3d Point3d::normalize() const{ register float mag =magnitude(); Point3d normal; norm原创 2014-01-07 13:27:11 · 1048 阅读 · 0 评论 -
深度探索C++对象模型 3Data语意学
第三章 Data语意学 已知如下程序: #include using namespace std; class X{}; class Y: public virtual X{}; class Z: public virtual X{}; class A: public Y,public Z{}; int main(){ cout sizeof(X)原创 2014-01-03 19:00:51 · 1141 阅读 · 0 评论 -
深度探索C++对象模型 1
第一章:关于对象 加上封装后的布局: 如果C++class和C struct含有相同数据成员,那么C++class并没有增加成本。因为,C++ class中的成员函数不出现在object中(non-inline 成员函数只会诞生一个实例,而inline函数则会在调用该C++ Class的文件模块中产生一个实例),所以C++支持的封装性质并未带来任何空间或执行期的不良后果。 C++原创 2013-12-23 13:50:58 · 1156 阅读 · 0 评论 -
深度探索C++对象模型:6.执行期语意学
第6章:执行期语意学 想象一下我们有下面这个简单的式子: if(yy ==xx.getValue( ))... 其中xx和yy定义为: X xx; Y yy; Class Y定义为: Class Y{ Public: Y( ); ~Y( ); Bool operator==(const Y&) const; //... }; Class X定义为: Class X{原创 2014-01-11 20:23:58 · 1309 阅读 · 0 评论 -
类对象内存布局,虚函数,虚拟继承和多重继承的实现
转载请注明出处:http://blog.csdn.net/walkerkalr,谢谢合作! 如需源代码,请留邮箱地址。 类对象内存布局,虚函数,虚拟继承和多重继承的实现机制 1. 无继承关系的类 2. 单一继承 2.1单层继承 2.2多重继承 3. 多重继承 一.无继承关系的类 已知A类与B类,A类代表无虚函数的类,B类代表有原创 2014-01-27 20:35:32 · 2014 阅读 · 0 评论