Speciální členské funkce (C++)
C++ definuje několik typů funkcí, které lze deklarovat pouze jako členy třídy – nazývají "funkce speciální členů." Tyto funkce ovlivňují způsob objekty dané třídy jsou vytvořeny, zničení, zkopírovat a převedeny na objekty jiných typů.Jiné důležité vlastnost mnoho z těchto funkcí je, může být volána implicitně (pomocí kompilátoru).
Speciální členské funkce popisované v této části jsou následující:
Konstruktory.Povolte automatické inicializaci objektů.
Destruktory.Proveďte čištění po objekty explicitně nebo implicitně ztraceny.
Funkce pro převod.Převeďte mezi typy tříd a dalších typů.
nové funkce operátor.Dynamicky přiděluje úložiště.
operátor odstranit funkce.Uvolní úložiště přidělené pomocí nové operátoru.
Operátor přiřazení (operátor =).Použít, když probíhá přiřazení.
Položky v předchozím seznamu může být uživatelem definované pro každou třídu.
Speciální členské funkce dodržovat stejná pravidla přístupu jako další členské funkce.Pravidla přístupu jsou popsány v řízení přístupu ke členu.Následující tabulka shrnuje chování funkce člena a přítele.
Souhrnné informace o chování funkce
Typ funkce |
Je funkce zděděni ze základní třídy? |
Může být virtuální funkce? |
Funkce se lze vrátit hodnotu? |
Funkce je člen nebo přítele? |
Vygeneruje kompilátor funkce Pokud uživatel není? |
---|---|---|---|---|---|
Konstruktor |
Ne |
Ne |
Ne |
Člen |
Ano |
Kopírovací konstruktor |
Ne |
Ne |
Ne |
Člen |
Ano |
Destruktor |
Ne |
Ano |
Ne |
Člen |
Ano |
Převod |
Ano |
Ano |
Ne |
Člen |
Ne |
Přiřazení (operator=) |
Ne |
Ano |
Ano |
Člen |
Ano |
new |
Ano |
Ne |
void * |
Statický člen |
Ne |
Odstranit |
Ano |
Ne |
void |
Statický člen |
Ne |
Další funkce člena |
Ano |
Ano |
Ano |
Člen |
Ne |
Funkce přítele |
Ne |
Ne |
Ano |
Friend |
Ne |