Sdílet prostřednictvím


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.

Viz také

Referenční dokumentace

Speciální členské funkce (C++)