求问 虚继承、虚函数继承 的各自作用与区别,谢谢
好像虚继承是为了节约内存,防止多重继承时多次包含基类的成分。
而对于“虚函数继承”这个概念就不知道是什么东西,只知道“虚函数”、“继承”,但不知道什么叫“虚函数继承”。。。
想麻烦一下,有谁能讲讲吗?越详细越好,谢谢!
ps:今天论坛的界面变漂亮了,不过打开起来也变的慢了。。。
[解决办法]
虚继承主要用于菱形 形式的继承形式
[解决办法]
虚继承是为了在多继承的时候避免引发歧义,
比如类A有个就是a,B继承了A,C也继承了A,当D多继承B,C时,就会有歧义产生了,所以要使用虚拟继承避免重复拷贝。
虚函数继承是解决多态性的,当用基类指针指向派生类对象的时候,基类指针调用虚函数的时候会自动调用派生类的虚函数,
这就是多态性,也叫动态编联,楼主可以找本书看看
[解决办法]
“虚函数继承”本来就是“虚函数”的“继承”嘛。
比如我举的那个例子,如果不是virtual,那么输出就是A,加了virtual输出就是B,“虚函数继承”可以根据实际对象调用不同的函数,而普通继承会在编译阶段就根据p变量的类型来决定调用哪个函数!
其他的什么就是玩文字游戏了,弄清楚了也没意义……