我从未在专业软件中使用它,即使在我们的商店和我工作的其他人,我们设计大型系统.我与虚拟继承混淆的唯一一次是在我公司的采访中.尽管如此,我还是在下班后玩弄了它.
你们用它吗?您是否了解它的工作原理(最流行的编译器供应商如何实现它)?我真的想知道如何在专业软件中使用它,如果有的话.诀窍和技巧也将受到赞赏.
对我来说,虚拟继承只是一个臭名昭着的钻石问题的解决方案.因此,它从未在我们的软件中找到它的方式,因为我们在我们的架构MI中没有得到钻石.
谢谢.
虚拟继承的要点是防止派生类继承不同上级类的多个副本.在任何可能存在多重继承的情况下都会发生这种情况 - 正如您正确指出的那样,"钻石问题",也就是说继承图是DAG而不是严格树的位置.
在C++ FAQ进入它在一些细节上.我还推荐C++ FAQ Book; 我曾经为作者工作,他们非常好.
我从未在专业软件中使用它,即使在我们的商店,
你用iostream
吗?我们的确是.查看iostream的设计,你就会知道你一直在使用虚拟继承.