Inicializace pomocí speciálních členských funkcí
Tato část popisuje inicializaci pomocí speciální členské funkce.Rozšiřuje následující diskuse o inicializaci:
Inicializace agregátů, která popisuje, jak inicializovat pole netřídních typů a objekty jednoduchých typů tříd.Tyto jednoduché typy třídy nemohou obsahovat soukromé nebo chráněné členy a nemohou mít základní třídy.
Konstruktory, kde je vysvětleno, jak inicializovat objekty typu třídy pomocí speciálních funkcí konstruktoru.
Výchozí metodou inicializace je provedení bitové kopie z inicializátoru do inicializovaného objektu.Tento postup se vztahuje pouze na:
Vestavěné typy objektů.Příklad:
int i = 100;
Ukazatele.Příklad:
int i; int *pi = &i;
Odkazy.Příklad:
String sFileName( "FILE.DAT" ); String &rs = sFileName;
Objekty typu třídy, kde třída nemá žádné soukromé nebo chráněné členy, žádné virtuální funkce a žádné základní třídy.Příklad:
// spec1_special_member_functions.cpp // compile with: /LD struct Point { int x, y; }; Point pt = { 10, 20 }; // Static storage class only
Třídy mohou specifikovat přesnější inicializaci definováním funkce konstruktoru. (Další informace o deklaraci těchto funkcí naleznete v tématu Konstruktory.) Pokud je objekt typu třídy, která má konstruktor, musí být objekt inicializován nebo musí existovat výchozí konstruktor.Objekty, které nejsou výslovně inicializovány vyvolají výchozí konstruktor třídy.