2009-05-08 14 views
7

Co to znaczy, gdy "wirtualny" jest w "klasie Foo: publiczny wirtualny pasek" w przeciwieństwie do "wirtualnej pustej frob()"?Co to znaczy, gdy "virtual" jest w "class Foo: public virtual Bar", a nie "virtual void frob()"?

Dla danej metody istnieje 8 przypadków wynikających z obecności lub braku wirtualności w następujących trzech lokalizacjach.

  1. Funkcje nadklasy.
  2. Łańcuch dziedziczenia dla tej klasy.
  3. Te klasy działają.

Myślę, że rozumiem, jak liczby 1 i 3 wchodzą w interakcje, ale numer 2 wydaje się zbędny. Czy to jest? Czego nie rozumiem?

Odpowiedz

11

To jest virtual inheritance, robisz to, gdy wiesz, że będziesz robić wiele dziedziczenia. Ta strona jest bardziej szczegółowa.

Powiązane problemy