Sdílet prostřednictvím


Členy třídy

Třídy mohou mít tyto druhy členů:

Poznámky

Seznam členů třídy může být rozdělen do částí private, protected a public pomocí klíčových slov, které jsou známé jako specifikátory přístupu. Specifikátor přístupu musí následovat dvojtečka :. Tyto části nemusí být souvislé, to znamená, že některé z těchto klíčových slov se mohou v seznamu členů objevit několikrát. Klíčové slovo určuje přístup všech členů, dokud se neobjeví další specifikátor přístupu nebo uzavírací složená závorka.

Deklarace členů v seznamu členů jsou odděleny středníky ;. Další informace naleznete v tématu Syntaxe deklarace člena třídy.

Účelem seznamu členů je:

  • Deklarovat kompletní sadu členů pro danou třídu.

  • Určit přístup (veřejný, soukromý nebo chráněný) spojený s různými členy třídy.

V deklaraci seznamu členů lze deklarovat členy pouze jednou. Redeklarace členů vyvolá chybovou zprávu.Protože je seznam členů úplnou sadou členů, nelze přidat členy dané třídy v následujících deklaracích třídy.

Deklarátory členů nemohou obsahovat inicializátory.Zadání inicializátoru vyvolá chybovou zprávu, jak je ukázáno v následujícím kódu:

// class_members1.cpp
// C2864 expected
class CantInit
{
public:
    long l = 7;       // Error: attempt to initialize
                      //  class member.
    static int i = 9; // Error: must be defined and initialized
                      // outside of class declaration.
};
int main()
{
}

Vzhledem k tomu, že je vytvořena samostatná instance nestatických datových členů pro každý objekt daného typu třídy, je správný způsob inicializace datových členů pomocí konstruktoru třídy. (Další informace o konstruktorech naleznete v tématu Konstruktory.)

Existuje pouze jedna kopie sdílených statických datových členů pro všechny objekty typu dané třídy.Statické datové členy musí být definovány a mohou být inicializovány v rozsahu souboru. (Další informace o statických datových členech naleznete v tématu Statické datové členy.) Následující příklad ukazuje, jak provést tyto inicializace:

// class_members2.cpp
class CanInit
{
public:
    CanInit() { l = 7; } // Initializes l when new objects of type 
                         //  CanInit are created.
    long       l;
    static int i;
    static int j;
};

// i is defined at file scope and initialized to 15.
// The initializer is evaluated in the scope of CanInit.
int CanInit::i = 15;                                                       

// The right side of the initializer is in the scope 
// of the object being initialized
int CanInit::j = i;  

int main()
{
}

[!POZNÁMKA]

Název třídy, CanInit, musí předcházet identifikátor i, čímž určíte, že definovaný identifikátor i je členem třídy CanInit.

Specifické pro produkty společnosti Microsoft

Jazyk C++ společnosti Microsoft umožňuje inicializovat statické, konstantní celé čísla a konstantní datové členy výčtu v definici třídy.Další informace naleznete v tématu Rozšíření jazyků C a C++ společnosti Microsoft.

Viz také

Referenční dokumentace

Třídy, struktury a spojení