C++菱形继承中的多继承、多重继承、虚继承实例
1.菱形继承:示意图如下
B继承于A,C继承于A,D多重继承于B和C,则创建D类对象时,就会有基类A的两份拷贝。
2.多继承:即一个派生类可以有两个或多个基类。
3.多重继承:像上图B继承于A,D继承于B,这种继承关系便是多继承。
4.虚继承:虚基类用virtual声明。无论该类在派生层次中作为虚基类出现多少次,只继承一个共享的基类子对象,共享基类子对象称为虚基类。虚继承可用来解决菱形继承中的问题。
5.代码实例:
//多继承:ChildLabourer继承于Children和Worker
//多重继承:Person-Children- ChildLabourer和Person - Work - ChildLabourer
//虚继承:关键词virtual,由于初始化ChildLabourer时两次调用Person
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
/**
* 定义人类: Person
*/
class Person
{
public:
Person()
{
cout << "Person" << endl;
}
~Person(