1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
struct VBase { virtual void f () {} VBase(); ~VBase(); }; struct StreamBase { virtual ~StreamBase() {} }; struct Stream : public virtual VBase, public StreamBase { Stream(); virtual ~Stream() {} }; struct DerivedStream : public Stream { DerivedStream(); };