#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 : public Animal
{
public:
Mammal()
{
cout << "Creating Mammal\n";
}
};
///////////////////////////
class Fox : public FourLegs, public Mammal
{
public:
Fox()
{
cout << "Creating Fox\n";
}
};
#endif // VIRTUAL_INHERITANCE_H
I2lmbmRlZiBWSVJUVUFMX0lOSEVSSVRBTkNFX0gKI2RlZmluZSBWSVJUVUFMX0lOSEVSSVRBTkNFX0gKCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEFuaW1hbAp7CnB1YmxpYzoKICAgIEFuaW1hbCgpCiAgICB7CiAgICAgICAgY291dCA8PCAiQ3JlYXRpbmcgQW5pbWFsXG4iOwogICAgfQp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBGb3VyTGVncyA6IHZpcnR1YWwgcHVibGljIEFuaW1hbAp7CnB1YmxpYzoKICAgIEZvdXJMZWdzKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJDcmVhdGluZyBGb3VyTGVnc1xuIjsKICAgIH0KfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKY2xhc3MgTWFtbWFsIDogcHVibGljIEFuaW1hbAp7CnB1YmxpYzoKICAgIE1hbW1hbCgpCiAgICB7CiAgICAgICAgY291dCA8PCAiQ3JlYXRpbmcgTWFtbWFsXG4iOwogICAgfQp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpjbGFzcyBGb3ggOiBwdWJsaWMgRm91ckxlZ3MsIHB1YmxpYyBNYW1tYWwKewpwdWJsaWM6CiAgICBGb3goKQogICAgewogICAgICAgIGNvdXQgPDwgIkNyZWF0aW5nIEZveFxuIjsKICAgIH0KfTsKCgoKI2VuZGlmIC8vIFZJUlRVQUxfSU5IRVJJVEFOQ0VfSAo=