标题:多继承中的二义性问题
只看楼主
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
得分:0 
你基类的析构函数没有定义为虚析构函数virtual ~~Base(){};
其次将你的class Base2:public Base改为class Base2:virtual public Base就通过了

我对virtual的概念很不清,但只要碰到二义性问题加virtual就是王道,你的代码我看都没怎么看
在class Base2:public Base没加virtual的情况果断加上就通过

其实对于公共基类Base说明为虚基类的话那么只会派生Base中的一个函数了,不然base2派生出的子类会有base2类中的一个函数和Base类中的一个函数
从而2义了.

[ 本帖最后由 xg5699 于 2011-7-30 22:59 编辑 ]

都不结贴我郁闷那!
2011-07-30 22:43
jfckpep
Rank: 1
等 级:新手上路
帖 子:40
专家分:2
注 册:2010-4-25
得分:0 
回复 11楼 xg5699
谁都知道改为class Base2:virtual public Base就可以通过了啊,只是这样改了就跟他题目想说的不一样了,另一个问题是没改前再VC6.0一样能编译通过
2011-07-31 11:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-345973-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072227 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved