#include <iostream>
using namespace std;
class InterfaceA
{
virtual void funA() = 0;
};
class InterfaceB:
public InterfaceA
{
virtual void funB() = 0;
};
class InterfaceC:
public InterfaceA
{
};
class InterfaceD:
public InterfaceB
{
};
class KlasseA:
public InterfaceB,
public InterfaceC,
public InterfaceD
{
public:
KlasseA();
~KlasseA();
void funA() final override;
};
//Implementierung:
KlasseA::KlasseA(){}
KlasseA::~KlasseA(){}
void KlasseA::funA(){}
class KlasseE: public KlasseA
{
public:
KlasseE();
~KlasseE();
void funB() override;
};
//Implementierung:
KlasseE::KlasseE(){}
KlasseE::~KlasseE(){}
void KlasseE::funB(){}
int main() {
KlasseE *e = new KlasseE();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgSW50ZXJmYWNlQQp7Cgl2aXJ0dWFsIHZvaWQgZnVuQSgpID0gMDsKfTsKY2xhc3MgSW50ZXJmYWNlQjoKCXB1YmxpYyBJbnRlcmZhY2VBCnsKCXZpcnR1YWwgdm9pZCBmdW5CKCkgPSAwOwp9OwpjbGFzcyBJbnRlcmZhY2VDOgoJcHVibGljIEludGVyZmFjZUEKewp9OwpjbGFzcyBJbnRlcmZhY2VEOgoJcHVibGljIEludGVyZmFjZUIKewp9OwoKY2xhc3MgS2xhc3NlQToKCXB1YmxpYyBJbnRlcmZhY2VCLAoJcHVibGljIEludGVyZmFjZUMsCglwdWJsaWMgSW50ZXJmYWNlRAp7CnB1YmxpYzoKCUtsYXNzZUEoKTsKCX5LbGFzc2VBKCk7CgoJdm9pZCBmdW5BKCkgZmluYWwgb3ZlcnJpZGU7Cn07CgovL0ltcGxlbWVudGllcnVuZzoKS2xhc3NlQTo6S2xhc3NlQSgpe30KS2xhc3NlQTo6fktsYXNzZUEoKXt9CnZvaWQgS2xhc3NlQTo6ZnVuQSgpe30KCgpjbGFzcyBLbGFzc2VFOiBwdWJsaWMgS2xhc3NlQQp7CnB1YmxpYzoKCUtsYXNzZUUoKTsKCX5LbGFzc2VFKCk7CgoJdm9pZCBmdW5CKCkgb3ZlcnJpZGU7Cn07Ci8vSW1wbGVtZW50aWVydW5nOgpLbGFzc2VFOjpLbGFzc2VFKCl7fQpLbGFzc2VFOjp+S2xhc3NlRSgpe30Kdm9pZCBLbGFzc2VFOjpmdW5CKCl7fQoKCmludCBtYWluKCkgewoJS2xhc3NlRSAqZSA9IG5ldyBLbGFzc2VFKCk7CgkKCXJldHVybiAwOwp9