虚继承

由多继承和多重继承引发的一些问题?  看一个例子:

   

在这个例子中,即有多继承,又有多重继承,类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的数据。

 

参考:  《慕课网》

 

posted @ 2017-06-18 11:34  恍如隔世灬  阅读(3452)  评论(0编辑  收藏  举报