解决上述问题的根本方法就是virtual继承。
简而言之就是singer和waiter通过virtual继承worker,那么这两条继承路径就共享同一个worker了。
Virtual继承的语法比较有意思,因为virtual关键字和继承方式关键字顺序可以是任意的,如下图所示;
注意!这个virtual继承和abstract base class不是一回事!
解决上述问题的根本方法就是virtual继承。
简而言之就是singer和waiter通过virtual继承worker,那么这两条继承路径就共享同一个worker了。
Virtual继承的语法比较有意思,因为virtual关键字和继承方式关键字顺序可以是任意的,如下图所示;