这里文章的题目是自拟的,是因为自己最近看了一篇文章,...
分类:
其他好文 时间:
2014-08-15 19:44:59
阅读次数:
186
特殊工具与技术--运行时类型识别[续] 三.RTTI的使用 当比较两个派生类对象的时候,我们希望比较可能特定于派生类的数据成员.如果形参是基类引用,就只能比较基类中出现的成员,我们不能访问在派生类中但不在基类中出现的成员. 因此我们可以使用RTTI,在试图比较不同类型的对象时返回假(false)。 我们将定义单个相等操作符。每个类定义一个虚函数 equal,该函数首先将操作数强制转换为正确的类型。...
分类:
编程语言 时间:
2014-08-13 22:36:07
阅读次数:
383
这篇文章主要讲解虚继承的C++对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。原文见这里(By Edsko de Vries, January 2006) 敬告:本文是介绍C++的技术文章,假定读者对于C...
分类:
其他好文 时间:
2014-08-13 18:12:16
阅读次数:
234
虚函数详解第一篇:对象内存模型浅析C++中的虚函数的内部实现机制到底是怎样的呢? 鉴于涉及到的内容有点多,我将分三篇文章来介绍。 第一篇:对象内存模型浅析,这里我将对对象的内存模型进行简单的实验和总结。 第二篇:继承对象的构造和析构浅析,这里我将对存在继承关系的对象的构造和析构进行简单的实验和...
分类:
编程语言 时间:
2014-08-12 21:35:44
阅读次数:
207
寻踪浅析 封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。C语言提供的struct,顶多算得上对数据的简单封装,而C++的引入把struct“升级”为class,使得面向对象的概念更加强大。继承机制解决了对象复用的问题,然而多重继承又会产生成员冲突的问题,虚继承在我....
分类:
其他好文 时间:
2014-08-12 13:25:04
阅读次数:
250
总结 ????虚基类? ????1, 一个类可以在一个类族中既被用作虚基类,也被用作非虚基类。? ????2, 在派生类的对象中,同名的虚基类只产生一个虚基类子对象,而某个非虚基类产生各自的子对象。? ???...
分类:
其他好文 时间:
2014-08-11 18:19:52
阅读次数:
407
多态在C++中是一个重要的概念,通过虚函数机制实现了在程序运行时根据调用对象来判断具体调用哪一个函数。 具体来说就是:父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指针(或者引用)调用实际子类的成员函数。在每个包含有虚函数的类的对象的最前面(是指这个对象对象内存布局的最前面)都有一...
分类:
编程语言 时间:
2014-08-09 22:57:49
阅读次数:
259
1、虚函数表http://blog.csdn.net/haoel/article/details/19480512、内存管理http://blog.csdn.net/haoel/article/details/3081328/http://blog.csdn.net/zhanghefu/articl...
分类:
其他好文 时间:
2014-08-09 15:37:28
阅读次数:
190
一、构造函数为什么不能为虚函数
1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。
2. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函...
分类:
其他好文 时间:
2014-08-09 11:46:37
阅读次数:
278