virtual
https://www.cnblogs.com/dirichlet/p/3226484.html
#include "iostream"
#include "string"
#include <typeinfo>
using namespace std;
class Base1
{
public:
Base1(): x(1){}
virtual void QueryInterface() { }
virtual void AddRef(){}
virtual void Release(){}
private:
int x;
};
class Base2
{
public:
Base2(): y(2){}
virtual void GetIdsOfNames() { }
virtual void Invoke(){}
private:
int y;
};
class Base3
{
public:
Base3(): z(3){}
virtual void GetMembers() { }
virtual void ToString(){}
private:
int z;
};
class Derived : public Base1, public Base2, public Base3
{
public:
Derived(): w(4){}
private:
int w;
};
int main()
{
Derived * pd = new Derived;
return 1;
}