由多繼承和多重繼承引發的一些問題? 看一個例子:
在這個例子中,即有多繼承,又有多重繼承,類D繼承於類B和類C,而類B和類C都繼承於類A,
這就導致類D中會存在兩份類A,這是不允許的,那么就得通過今天的虛繼承來解決這個問題。
虛繼承用法如下所示:
1 class Person { 2 3 }; 4 5 class Worker : virtual public Person { 6 7 }; 8 9 class Farmer : virtual public Person { 10 11 }; 12 13 class MigrantWorker : public Worker, public Farmer { 14 15 };
那么使用MigrantWorker這個類去實例化一個對象,那么這個對象當中只含有一份Person的數據。
參考: 《慕課網》