#ifndef VIRTUAL_INHERITANCE_H
#define VIRTUAL_INHERITANCE_H
#include <iostream>
using namespace std;
class Animal
{
public:
Animal()
{
cout << "Creating Animal\n";
}
};
///////////////////////////
class FourLegs : virtual public Animal
{
public:
FourLegs()
{
cout << "Creating FourLegs\n";
}
};
///////////////////////////
class Mammal : virtual public Animal
{
public:
Mammal()
{
cout << "Creating Mammal\n";
}
};
///////////////////////////
class Fox : public FourLegs, public Mammal
{
public:
Fox()
{
cout << "Creating Fox\n";
}
};
#endif // VIRTUAL_INHERITANCE_H
I2lmbmRlZiBWSVJUVUFMX0lOSEVSSVRBTkNFX0gKI2RlZmluZSBWSVJUVUFMX0lOSEVSSVRBTkNFX0gKCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEFuaW1hbAp7CnB1YmxpYzoKICAgIEFuaW1hbCgpCiAgICB7CiAgICAgICAgY291dCA8PCAiQ3JlYXRpbmcgQW5pbWFsXG4iOwogICAgfQp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBGb3VyTGVncyA6IHZpcnR1YWwgcHVibGljIEFuaW1hbAp7CnB1YmxpYzoKICAgIEZvdXJMZWdzKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJDcmVhdGluZyBGb3VyTGVnc1xuIjsKICAgIH0KfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgTWFtbWFsIDogdmlydHVhbCBwdWJsaWMgQW5pbWFsCnsKcHVibGljOgogICAgTWFtbWFsKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJDcmVhdGluZyBNYW1tYWxcbiI7CiAgICB9Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmNsYXNzIEZveCA6IHB1YmxpYyBGb3VyTGVncywgcHVibGljIE1hbW1hbAp7CnB1YmxpYzoKICAgIEZveCgpCiAgICB7CiAgICAgICAgY291dCA8PCAiQ3JlYXRpbmcgRm94XG4iOwogICAgfQp9OwoKCgojZW5kaWYgLy8gVklSVFVBTF9JTkhFUklUQU5DRV9ICg==