#include <iostream>
using namespace std;
class InterfaceA
{
virtual void funA() = 0;
};
class InterfaceB:
public InterfaceA
{
virtual void funB() = 0;
};
class KlasseA:
public InterfaceB
{
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgSW50ZXJmYWNlQQp7Cgl2aXJ0dWFsIHZvaWQgZnVuQSgpID0gMDsKfTsKY2xhc3MgSW50ZXJmYWNlQjoKCXB1YmxpYyBJbnRlcmZhY2VBCnsKCXZpcnR1YWwgdm9pZCBmdW5CKCkgPSAwOwp9OwpjbGFzcyBLbGFzc2VBOgoJcHVibGljIEludGVyZmFjZUIKewpwdWJsaWM6CglLbGFzc2VBKCk7Cgl+S2xhc3NlQSgpOwoKCXZvaWQgZnVuQSgpIGZpbmFsIG92ZXJyaWRlOwp9OwoKLy9JbXBsZW1lbnRpZXJ1bmc6CktsYXNzZUE6OktsYXNzZUEoKXt9CktsYXNzZUE6On5LbGFzc2VBKCl7fQp2b2lkIEtsYXNzZUE6OmZ1bkEoKXt9CgoKY2xhc3MgS2xhc3NlRTogcHVibGljIEtsYXNzZUEKewpwdWJsaWM6CglLbGFzc2VFKCk7Cgl+S2xhc3NlRSgpOwoKCXZvaWQgZnVuQigpIG92ZXJyaWRlOwp9OwovL0ltcGxlbWVudGllcnVuZzoKS2xhc3NlRTo6S2xhc3NlRSgpe30KS2xhc3NlRTo6fktsYXNzZUUoKXt9CnZvaWQgS2xhc3NlRTo6ZnVuQigpe30KCgppbnQgbWFpbigpIHsKCUtsYXNzZUUgKmUgPSBuZXcgS2xhc3NlRSgpOwoJCglyZXR1cm4gMDsKfQ==