虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class
Cman{public:virtu...
分类:
其他好文 时间:
2014-05-30 02:11:58
阅读次数:
253
前不久在C++板块请教过这样一个问题:“多个基类中相同的纯虚函数,只需在派生类中实现一次”是否是标准行为。这个问题直到现在我也还没能确定,不过我在VC2005、VC2008和g++上都试过,该特性在所有这些编译器上都可以正常工作,所以应该八九不离十了。另外,记得当时星星有“语法正确逻辑说不过去”一....
分类:
其他好文 时间:
2014-05-28 20:19:02
阅读次数:
354
#define CC_UNUSED_PARAM(unusedparam)
(void)unusedparam这个宏完全没有执行任何命令,这样写的原因主要是历史遗留原因,ojb-c不存在纯虚函数并且传入参数不使用编译器会发出警告,这样用一个宏既可以防止警告也有一定的解释作用。
分类:
其他好文 时间:
2014-05-26 16:18:20
阅读次数:
775
虚函数是有代码的并明确允许子类去覆盖,但子类也可不覆盖,就是说可以直接用,不用重写抽象函数是没有代码,子类继承后一定要重写在一个类中用虚函数:是因为在超类中的有实际代码的方法,但明确允许子类可以作重写而且当子类重写后,可以用子类实例超类;如果这样,超类变量调用虚函数时,执行的是子类的方法在一个类中用...
分类:
其他好文 时间:
2014-05-26 07:34:47
阅读次数:
200
在C++继承模型中,一个派生类对象表现出来的东西,是其自己的成员加上其基类成员的总和。但这些成员如何摆放,标准并未强制规定。一般而言,先摆放基类成员,内存向高地址增长。
下面从四个部分讨论C++继承模型:
单一继承不含虚函数单一继承并含虚函数多重继承虚拟继承
1、单一继承不含虚函数
这种继承关系很简单,基类子对象包含在了派生类对象中,在内存中连续存放。但有一点需...
分类:
编程语言 时间:
2014-05-26 03:51:22
阅读次数:
295
类的虚函数\虚继承所占的空间本文地址:http://blog.csdn.net/caroline_wendy/article/details/24236469char占用一个字节,
但不满足4的倍数时, 会进行数据对齐, 使用4的倍数的字节(byte).GCC:GCC中, 不管是虚函数还是虚继承, ...
分类:
编程语言 时间:
2014-05-25 20:07:05
阅读次数:
431
条款01:视C++为一个语言联绑
C++的四个语言层次:
C:C++是以C为基础的。基本数据类型、语句、预处理器、数组、指针等统统来自C。Oject-Oriented C++:面向对象这一特性包含了:类,封装,继承,多态,虚函数等Template C++:C++的泛型编程能力。STL:一个标准的template库,里面介绍了容器、迭代器、算法以及函数对象等模板类和模板函数。
综述...
分类:
编程语言 时间:
2014-05-21 16:35:40
阅读次数:
265
在使用 QTableView 或 QTableWidget 时,有时我们不想要选中虚框,可以实现一个 ItemDelegate ,重写 drawFocus() 和 drawCheck() 两个虚函数,然后调用 QAbstractItemView 的 setItemDelegate() 把自定义的 itemDelegate 对象传递给 QTableView 即可。需要注意的是,QAbstractItemView 不会删除你设置给它的 ItemDelegate ,需要开发者自己在合适的时候删除它。...
分类:
移动开发 时间:
2014-05-21 16:28:24
阅读次数:
327