virtual base class: wirtualna klasa bazowa

> Dodaj do ulubionych
Technika stosowana w języku C++ do zapobiegania wystąpieniu problemu związanego z wielokrotnym dziedziczeniem przez jedną klasę atrybutów klasy pośrednio nadrzędnej. Np. dane są 4 klasy A, B, C i D. Klasa A znajduje się na szczycie hierarchii, klasy B i C dziedziczą po klasie A, natomiat klasa D dziedziczy po klasach B i C oraz pośrednio po klasie A:

diamentowa hierarchia klas

Z przedstawionej na rysunku hierarchii wynika, że klasa D dziedziczy przez klasy B i C atrybuty klasy A dwa razy. Problem ten rozwiązuje się przez dziedziczenie klasy A przez klasy B i C jako wirtualnej klasy bazowej, dzięki czemu klasa D odziedziczy atrybuty klasy A tylko jeden raz.

Dodaj komentarz

5 × trzy =