1、 单个虚拟继承
只是为了分析而已,实际中并没有太大的作用。跟虚拟继承相关的派生类对象的内存布局跟具体的编译器相关。
(1)VS编译器:无论有无虚函数,必然含有虚基类表指针。虚基类表中的内容为本类实例的偏移和基类实例的相对偏移值。如果有虚函数,那么基类的虚函数表跟派生类的虚函数表是分开的。
在内存布局上,地址从低到高,顺序如下:派生类的虚函数表指针+虚基类表指针+派生类的成员变量+“...
分类:
编程语言 时间:
2014-08-23 11:24:30
阅读次数:
357
一个接口需要统一的派生接口,这样做的好处在于能够统一的进行管理。我所知的脚本语言中,接口有多重接口,也还有所谓的虚基类,这些都是方便类的管理。在vengine(微引擎)中,统一的的接口管理为kernel模块,类的管理采取了节点管理的模式,就是所有类对象使用一个实例进行管理。那么什么是节点,什么是树?...
分类:
其他好文 时间:
2014-08-23 11:16:40
阅读次数:
293
总结 ????虚基类? ????1, 一个类可以在一个类族中既被用作虚基类,也被用作非虚基类。? ????2, 在派生类的对象中,同名的虚基类只产生一个虚基类子对象,而某个非虚基类产生各自的子对象。? ???...
分类:
其他好文 时间:
2014-08-11 18:19:52
阅读次数:
407
1.多态在面向对象语言中,接口的多种不同实现方式即为多态。多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数。在Java中,没有指针,就直接用父类实例化子类对象多态性就是允许将子类类型的指针赋值给父类类型的指针,多态是通过虚函数实现的,多态可以让父类的指针有“多种...
分类:
其他好文 时间:
2014-08-04 17:00:37
阅读次数:
259
多重继承描述的是有多个直接基类的类。多重继承会带来两个主要的问题:
①从两个不同的基类继承同名方法;
②从两个或更多相关基类那里继承同一个类的多个实例。例如:
class A
{
private:
string name;
int id;
public:
virtual void f();
...
};
class B:public A
{
private...
分类:
其他好文 时间:
2014-07-28 16:32:06
阅读次数:
237
重载和重写搞的差不多了,隐藏有有点混乱了,在此记一下,留作后看成员函数被重载的特征(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。重写(覆盖)是指派生类函数覆盖基类函数,--这是c++多态的标志,虚函数赋零则变成虚基类(纯粹的接口申明类),...
分类:
其他好文 时间:
2014-07-16 20:50:54
阅读次数:
131
/*长期的物种进化使自然界出现了生活在陆地上的陆生动物和生活在水中的水生动物。
根据已有主函数编写动物类,陆生动物类和水生动物类。
Input
动物的体长,体重,性别;
水生动物的体长,体重,性别,游泳速度;
陆生动物的体长,体重,性别,奔跑速度;
Output
动物的体长,体重,性别;
水生动物的体长,体重,性别,游泳速度;
陆生动物的体长,体重,性别,奔跑速度;
*/
#...
分类:
其他好文 时间:
2014-07-11 08:13:59
阅读次数:
221
/*长期的物种进化使两栖动物既能活跃在陆地上,又能游动于水中。
利用虚基类建立一个类的多重继承,包括动物(animal,属性有体长,体重和性别),
陆生动物(ter_animal,属性增加了奔跑速度),水生动物(aqu_animal,
属性增加了游泳速度)和两栖动物(amp_animal)。其中两栖动物保留了陆生动物和水生动物的属性。
Input
两栖动物的体长,体重,性别,游泳速度,奔...
分类:
其他好文 时间:
2014-07-10 20:46:52
阅读次数:
221
1.虚基类
考虑这样一种情况:当某个类的部分或者全部直接基类是另一个共同基类派生而来,这些直接基类从上一级基类继承而来的成员就一定拥有相同的名称,这样就会产生二义性问题。
解决办法:当派生类和直接基类产生了二义性问题-->加类的作用域。
当派生类和间接基类产生了二义性问题-->虚基类。
2.虚基类的说明:
class 派生类名:virtual 访问权限 基类名
{派...
分类:
编程语言 时间:
2014-07-06 10:08:21
阅读次数:
219
一.虚基类——在继承方式(public / private)class B1: virtual public B0{};作用:防止多重继承中二义性,保证成员唯一标识是核心。【比较】 作用域分辨符:: vs 虚基类 相同:都是为了保证 唯一标识成员 不同:①“::” 在派生类中,同名成员有多...
分类:
编程语言 时间:
2014-06-18 08:52:01
阅读次数:
222