注册 登录
编程论坛 C++教室

继承二义性到三角问题,第二种处理方法他说有区别,什么区别

冬青123 发布于 2020-01-03 13:46, 1762 次点击
这是什么意思,什么区别那
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
2 回复
#2
叶纤2020-01-03 18:08
你的问题说的太抽象了,大神级别的估计能看懂吧,(以下说的话是我对书中代码的初步理解,因为我也没学多久大概一个月吧,所以仅供参考,吸收不吸收全靠楼主的个人见解)
我的理解是,
假设楼主要看一本名叫《迷茫》的书,楼主应该怎么做呢?当然是先找到书,然后看书名是不是叫《迷茫》
1,obj.base1::fun()
照着图片作者的叙述可以理解为,直接看到书上的名字如book::bookname()
2.第二个好理解点就是    你想找一本书》书的名字是什么?》哦原来书的名字是《迷茫》》
void bookname(){book::bookname;}
3为什么书上用的是中文符号!!!!!!中文的::符号!!!!中文的,符号!!!!!

#3
whinda2020-01-08 01:29
基类A和B都有一个方法fun, 子类C同时从A和B派生,如果直接调用C.fun()就会产生歧义,不知道调用的是A的还是B的那一个,解决方法:1加限定符或者,2在C里面自定义一个同名的fun,并且在该fun方法内指明要调用的是A或B的fun,这样做的话C.fun()调用才能够明确。

方法1和方法2作用是一样的,都是明确调用的来源,只是处理的方式不一样。毕竟一个方法会在多个地方调用,方法1比较繁琐每一次都要加限定前缀还要多打好几个字,方法2预先定义好,后期直接通过C的实例调用比较方便。
1