Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Słowa kluczowe języka C++