这个是一个改错题 void hun( ){ fun ( ); }是什么意思呢?

[复制链接]
查看11 | 回复2 | 2011-10-13 22:22:36 | 显示全部楼层 |阅读模式
鉴于你这代码写的太糟糕了,花了一点时间publlic:cout/,,b.gun'<<endl;}都打错了最后还少个};好。言归正传,错误原因有主要是C继承了A和B,而A和B中都有函数fun,故C中函数hun调用fun函数时不知调用哪一个,即 error: reference to `fun' is ambiguous error: candidates are: void B::fun() error:
void A::fun()产生了二义性,出错了。总之一句话,计算机很笨的,你让他做什么,他就做什么,命令不对,他就出错了~~~...
回复

使用道具 举报

千问 | 2011-10-13 22:22:36 | 显示全部楼层
它查找名字是同时搜索检查所有的基类继承的子树...在你的例子中它在A类和B类中发现fun, 编译器不知道调用哪个函数. 要在多重继承下调用fun函数必须明确指定属于哪个类..如: A::fun();...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行