#include <iostream>
using namespace std;
class base
{
public:
base(){}
virtual ~base(){}
int get()const{return num;}
private:
int num;
};
class base1
{
public:
base1(){}
virtual ~base1(){}
private:
int helthy;
};
class base2
{
public:
base2(){}
virtual ~base2(){}
private:
int aa;
};
class derived:public base,public base1,public base2
{
public:
derived(){}
~derived(){}
private:
int id;
};
int main()
{
base *pb = new derived;
cout << pb << endl;
int *p = (int*)pb;
p[1] = 5;
cout << pb->get() << endl;
delete pb;
return 0;
}
/**multiple inheritance class object model
|--------| <<---- this(base,derived) base *pb = new derived;derived md1;
| base |
|--------| <<---- this(base1) base1 *pb1 = new derived;
| base1 |
|--------| <<---- this(base2) base2 *pb2 = new derived;
| base2 |
|--------| ---->> derived class object model
| derived|
|--------|
**/