next up previous
Mehrfachvererbung


Mehrfacher Aufruf derselben Methode
der virtuellen Basisklasse durch die abgeleiteten Klassen


 
// File: MultCall.h
#include <iostream.h>
class S {
  int s;
public:
  S(int _s) : s(_s){}
  virtual void print()
  { cout << s << "\n"; }
};
class A: virtual public S {
  int x;
public:
  A(int _x)
  : S(111), x(_x){}
  virtual void print()
  { S::print();
    cout << x << "\n"; }
};
class B: virtual public S {
  char y;
public:
  B(char _y)
  : S(222), y(_y){}
  virtual void print()
  { S::print();
    cout << y << "\n"; }
};
class C: public A, public B {
  float z;
public:
  C(int _A, char _B, float _z)
  : S(333), A(_A), B(_B), z(_z){}
  virtual void print()
  { A::print(); B::print();
    cout << z << "\n";
  }
};


next up previous