fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class CEnabled
  5. {
  6. public:
  7. CEnabled(bool bEnabled = false);
  8. bool IsEnabled() const { return m_bEnabled; }
  9. private:
  10. bool m_bEnabled;
  11. };
  12.  
  13. CEnabled::CEnabled(bool bEnabled)
  14. {
  15. m_bEnabled = bEnabled;
  16. }
  17.  
  18. // Folgender Konstrukt bzgl. abgeleiteter Klassen sei jetzt gegeben:
  19.  
  20. class CBase1 : public CEnabled
  21. {
  22. public:
  23. CBase1() : CEnabled(false)
  24. {
  25. }
  26. };
  27.  
  28. class CBase2 : public CEnabled
  29. {
  30. public:
  31. CBase2() : CEnabled(true)
  32. {
  33. }
  34. };
  35.  
  36.  
  37. class CDerived : public CBase1, public CBase2, public CEnabled
  38. {
  39. public:
  40. CDerived();
  41. };
  42.  
  43. CDerived::CDerived()
  44. : CEnabled(true)
  45. // : CBase1::CEnabled(false), CBase2::CEnabled(true)
  46. {
  47. }
  48.  
  49. int main() {
  50. // your code goes here
  51. CDerived derived;
  52. cout << "Base1: " << derived.CBase1::IsEnabled() << endl;
  53. cout << "Base2: " << derived.CBase2::IsEnabled() << endl;
  54. //cout << "Enabled: " << derived.IsEnabled() << endl;
  55. //cout << "Enabled: " << derived.CDerived::CEnabled::IsEnabled() << endl;
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Base1: 0
Base2: 1