Słowa kluczowe dziedziczenia
Specyficzne dla firmy Microsoft
class [__single_inheritance] class-name;
class [__multiple_inheritance] class-name;
class [__virtual_inheritance] class-name;
gdzie:
- class-name
Nazwa deklarowanej klasy.
C++ umożliwia deklarację wskaźnika do elementu członkowskiego klasy przed definicją klasy.Na przykład:
class S;
int S::*p;
W powyższym kodzie p jest deklarowana jako wskaźnik do liczby całkowitej elementu członkowskiego klasy S.Jednakże class S jeszcze nie została zdefiniowana w niniejszym kodzie; została tylko zadeklarowana.Gdy kompilator napotka taki wskaźnik, musi stworzyć ogólną reprezentację wskaźnika.Rozmiar reprezentacji zależy od określonego modelu dziedziczenia.Istnieją cztery sposoby określania modelu dziedziczenia w kompilatorze:
W IDE pod Reprezentacja wskaźnika do elementu członkowskiego
W wierszu polecenia za pomocą przełącznika /vmg
Za pomocą dyrektywy pointers_to_members
Za pomocą słów kluczowych dziedziczenia __single_inheritance, __multiple_inheritance i __virtual_inheritance.Technika ta kontroluje model dziedziczenia na podstawie klasy.
[!UWAGA]
Jeśli zawsze deklarowany jest wskaźnik do elementu członkowskiego klasy po zdefiniowaniu klasy, nie trzeba używać żadnej z tych opcji.
Deklarowanie wskaźnika do elementu członkowskiego klasy przed definicją klasy wpływa na rozmiar i prędkość wynikowego pliku wykonywalnego.Im bardziej złożone dziedziczenie używane przez klasy, tym większa liczba bajtów jest potrzebna do reprezentowania wskaźnika do elementu członkowskiego klasy i więcej kodu jest wymagane do interpretacji wskaźnika.Pojedyncze dziedziczenie jest najmniej skomplikowane, a dziedziczenie wirtualne jest najbardziej złożone.
Jeśli powyższy przykład zmieni się na:
class __single_inheritance S;
int S::*p;
niezależnie od opcji wiersza polecenia lub dyrektyw, wskaźniki do elementów członkowskich class S będą wykorzystywały najmniejszą możliwą reprezentację.
[!UWAGA]
Taka sama wczesna reprezentacja wskaźnika elementu członkowskiego klasy powinna występować w każdej jednostce translacji, która deklaruje wskaźniki do elementów członkowskich tej klasy, a deklaracja powinna występować przed deklaracją wskaźników do elementów członkowskich.
KONIEC informacji specyficznych dla firmy Microsoft