像java,c#等去掉了多重继承,真需要的时候不得不用接口,有的是不方便的地方。
其实这种菱形继承是没必要存在的,不要用就好了。
像你说的,只承认A的一份拷贝,但B和C会改变A的行为,例如A里面的共有函数M1会调用M2这个函数,而M2是虚函数被B和C实现,然后你在D里面调用M1,这时是B的M2被调用呢,还是C的M2被调用呢?
其实我们可以用explicity casting来解决,不过还是不要这么用的好。语言是给自己编程带来方便的,何必自找麻烦
像java,c#等去掉了多重继承,真需要的时候不得不用接口,有的是不方便的地方。
其实这种菱形继承是没必要存在的,不要用就好了。
像你说的,只承认A的一份拷贝,但B和C会改变A的行为,例如A里面的共有函数M1会调用M2这个函数,而M2是虚函数被B和C实现,然后你在D里面调用M1,这时是B的M2被调用呢,还是C的M2被调用呢?
其实我们可以用explicity casting来解决,不过还是不要这么用的好。语言是给自己编程带来方便的,何必自找麻烦
•
C++里面有大量这样的牛角尖,完全没有必要去钻。如果方便就用,千万不值得把自己陷进去
-企鹅肥肥-
♂
(0 bytes)
()
03/19/2011 postreply
18:42:15
WENXUECITY.COM does not represent or guarantee the truthfCCPA ulness, accuracy, or reliability of any of communications posted by other users.
Copyright ©1998-2025 wenxuecity.com All rights reserved. Privacy Statement & Terms of Use & User Privacy Protection Policy