首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

[C++][基础知识 三]虚基类

2012-11-11 
[C++][基础知识 3]虚基类三 虚基类如图所示,如果类B和类C均由类A派生而成,而类D又是由类B和类C共同派生而

[C++][基础知识 3]虚基类

三 虚基类

    如图所示,如果类B和类C均由类A派生而成,而类D又是由类B和类C共同派生而成,则在派生类D中就出现了基类A的两个拷贝,从而产生了冲突。为了解决此问题,VC++中引入了虚基类的概念,即在由类A派生类B和类C时,如果将基类A说明为虚基类,则类A在此后的派生类中只生成一个拷贝。例如:

    D(int x,int y,int z,int q):B(y,z),C(z,q)

则系统编译时将报错。上面的程序运行后输出:
4  3  2  1
    从程序的输出可以看出,类D中从类A继承来的成员a的初始化是由C行中的A(q)完成的。

热点排行