Sdílet prostřednictvím


Klíčová slova dědičnosti

Specifické pro Microsoft

class [__single_inheritance] class-name; 
class [__multiple_inheritance] class-name; 
class [__virtual_inheritance] class-name;

kde:

  • název třídy
    Název deklarované třídy.

Jazyk C++ umožňuje deklarovat ukazatel na člen třídy před definicí třídy.Příklad:

class S;
int S::*p;

Ve výše uvedeném kódu je p deklarován jako ukazatel na celočíselný člen třídy S.Nicméně class S nebyla v tomto kódu dosud definována. Je pouze deklarována.Když kompilátor na takový ukazatel narazí, musí vytvořit obecné rozlišení ukazatele.Velikost rozlišení je závislé na zadaném modelu dědičnosti.Pro určení modelu dědičnosti existují čtyři způsoby:

  • V integrovaném vývojovém prostředí IDE pod Rozlišení člena na ukazatel

  • Pomocí přepínače příkazového řádku /vmg

  • Pomocí direktivy pragma pointers_to_members

  • Pomocí klíčových slov dědičnosti __single_inheritance, __multiple_inheritance a __virtual_inheritance.Tento postup řídí model dědičnosti na základě každé třídy.

    [!POZNÁMKA]

    Je-li vždy pro člena třídy po definování třídy definován ukazatel, není třeba použít žádnou z těchto možností.

Deklarování ukazatele na člen třídy před definicí třídy ovlivňuje velikost a rychlost výsledného spustitelného souboru.Čím složitější dědičnost třída používá, tím větší je počet bajtů potřebných k zastoupení ukazatele na člen třídy a tím větší je kód potřebný k interpretaci ukazatele.Jednoduchá dědičnost je nejméně náročná a virtuální dědičnost je nejsložitější.

Je-li výše uvedený příklad změněn na:

class __single_inheritance S;
int S::*p;

bez ohledu na možnosti příkazového řádku nebo direktivy pragma, odkazy na členy class S budou používat nejmenší možnou reprezentaci.

[!POZNÁMKA]

Stejná dopředná deklarace třídy reprezentace ukazatele na člena by se měla objevit v každé jednotce překladu, která deklaruje ukazatele na členy této třídy a deklarace by se měla objevit před deklarací ukazatelů na členy.

Specificka produktu Microsoft END

Viz také

Referenční dokumentace

Klíčová slova jazyka C++