#include <iostream>
using namespace std;
class CEnabled
{
public:
CEnabled(bool bEnabled = false);
bool IsEnabled() const { return m_bEnabled; }
private:
bool m_bEnabled;
};
CEnabled::CEnabled(bool bEnabled)
{
m_bEnabled = bEnabled;
}
// Folgender Konstrukt bzgl. abgeleiteter Klassen sei jetzt gegeben:
class CBase1 : public CEnabled
{
public:
CBase1() : CEnabled(false)
{
}
};
class CBase2 : public CEnabled
{
public:
CBase2() : CEnabled(true)
{
}
};
class CDerived : public CBase1, public CBase2, public CEnabled
{
public:
CDerived();
};
CDerived::CDerived()
: CEnabled(true)
// : CBase1::CEnabled(false), CBase2::CEnabled(true)
{
}
int main() {
// your code goes here
CDerived derived;
cout << "Base1: " << derived.CBase1::IsEnabled() << endl;
cout << "Base2: " << derived.CBase2::IsEnabled() << endl;
//cout << "Enabled: " << derived.IsEnabled() << endl;
//cout << "Enabled: " << derived.CDerived::CEnabled::IsEnabled() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQ0VuYWJsZWQKewpwdWJsaWM6CglDRW5hYmxlZChib29sIGJFbmFibGVkID0gZmFsc2UpOwoJYm9vbCBJc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2JFbmFibGVkOyB9CnByaXZhdGU6Cglib29sIG1fYkVuYWJsZWQ7Cn07CgpDRW5hYmxlZDo6Q0VuYWJsZWQoYm9vbCBiRW5hYmxlZCkKewogIG1fYkVuYWJsZWQgPSBiRW5hYmxlZDsKfQoKLy8gRm9sZ2VuZGVyIEtvbnN0cnVrdCBiemdsLiBhYmdlbGVpdGV0ZXIgS2xhc3NlbiBzZWkgamV0enQgZ2VnZWJlbjoKCmNsYXNzIENCYXNlMSA6IHB1YmxpYyBDRW5hYmxlZAp7CnB1YmxpYzoKICBDQmFzZTEoKSA6IENFbmFibGVkKGZhbHNlKQogIHsKICB9Cn07CgpjbGFzcyBDQmFzZTIgOiBwdWJsaWMgQ0VuYWJsZWQKewpwdWJsaWM6CiAgQ0Jhc2UyKCkgOiBDRW5hYmxlZCh0cnVlKQogIHsKICB9Cn07CgoKY2xhc3MgQ0Rlcml2ZWQgOiBwdWJsaWMgQ0Jhc2UxLCBwdWJsaWMgQ0Jhc2UyLCBwdWJsaWMgQ0VuYWJsZWQgCnsKcHVibGljOgoJQ0Rlcml2ZWQoKTsKfTsKCkNEZXJpdmVkOjpDRGVyaXZlZCgpCiAgICA6IENFbmFibGVkKHRydWUpCi8vICA6IENCYXNlMTo6Q0VuYWJsZWQoZmFsc2UpLCBDQmFzZTI6OkNFbmFibGVkKHRydWUpCnsKfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglDRGVyaXZlZCBkZXJpdmVkOwoJY291dCA8PCAiQmFzZTE6ICIgPDwgZGVyaXZlZC5DQmFzZTE6OklzRW5hYmxlZCgpIDw8IGVuZGw7Cgljb3V0IDw8ICJCYXNlMjogIiA8PCBkZXJpdmVkLkNCYXNlMjo6SXNFbmFibGVkKCkgPDwgZW5kbDsKCS8vY291dCA8PCAiRW5hYmxlZDogIiA8PCBkZXJpdmVkLklzRW5hYmxlZCgpIDw8IGVuZGw7CgkvL2NvdXQgPDwgIkVuYWJsZWQ6ICIgPDwgZGVyaXZlZC5DRGVyaXZlZDo6Q0VuYWJsZWQ6OklzRW5hYmxlZCgpIDw8IGVuZGw7CglyZXR1cm4gMDsKfQo=