struct IAnimal {
virtual ~IAnimal() {}
virtual void isAlive() = 0;
};
struct IPet : virtual public IAnimal {
};
struct CAnimal : virtual public IAnimal {
virtual void isAlive() {
}
};
struct CPet : virtual public CAnimal, virtual public IPet {
};
int main(void) {
CPet cp;
}
c3RydWN0IElBbmltYWwgewogICAgdmlydHVhbCB+SUFuaW1hbCgpIHt9CiAgICB2aXJ0dWFsIHZvaWQgaXNBbGl2ZSgpID0gMDsKfTsKCnN0cnVjdCBJUGV0IDogdmlydHVhbCBwdWJsaWMgSUFuaW1hbCB7Cn07CgpzdHJ1Y3QgQ0FuaW1hbCA6IHZpcnR1YWwgcHVibGljIElBbmltYWwgewogICAgdmlydHVhbCB2b2lkIGlzQWxpdmUoKSB7CiAgICB9Cn07CgpzdHJ1Y3QgQ1BldCA6IHZpcnR1YWwgcHVibGljIENBbmltYWwsIHZpcnR1YWwgcHVibGljIElQZXQgewp9OwoKaW50IG1haW4odm9pZCkgewogICAgQ1BldCBjcDsKfQ==