next up previous
Mehrfachvererbung


Mehrfacher Aufruf derselben Methode
der virtuellen Basisklasse durch die abgeleiteten Klassen

 
class A: virtual public S {
  int x;
protected:
  void _print()
  { cout << x << "\n"; }
public:
  A(int _x)
  : S(111), x(_x){}
  virtual void print()
  { S::_print();
    _print(); }
};
class B: virtual public S {
  char y;
protected:
  void _print()
  { cout << y << "\n"; }
public:
  B(char _y)
  : S(222), y(_y){}
  virtual void print()
  { S::_print();
    _print(); }
};
class C: public A, public B {
  float z;
protected:
  void _print()
  { cout << z << "\n"; }
public:
  C(int _A, char _B, float _z)
  : S(333), A(_A), B(_B), z(_z){}
  virtual void print()
  { S::_print(); A::_print(); B::_print();
    _print(); }
};


next up previous