菱形继承
class Person
{
int _AA;
};
class Student:public Person
{
int _BB;
};
class Teacher :public Person
{
int _CC;
};
class Assistant :public Student, public Teacher
{
int _DD;
};
PS:
Assistant的对象中存在两份Person成员
菱形继承存在二义性和数据冗余
解决:
使用虚继承
首先不使用虚继承时:
#include<iostream>
using namespace std;