Udostępnij za pośrednictwem


Elementy członkowskie klasy

Klasy mogą mieć następujące rodzaje członków:

Uwagi

Lista członków klasy może być podzielona na sekcje private, protected i publiczne przy użyciu słów kluczowych, znanych jako specyfikatory dostępu. Dwukropek : musi określać specyfikator dostępu. Sekcje te nie muszą być ciągłe, to znaczy dowolne z tych słów kluczowych mogą się pojawić kilka razy na liście elementów członkowskich. Słowo kluczowe wyznacza dostęp do wszystkich elementów aż do następnego specyfikatora dostępu lub nawiasu zamykającego.

Deklaracje członków na liście elementów członkowskich są oddzielone średnikami ;. Zobacz Składnia deklaracji elementu członkowskiego klasy.

Celem listy elementów członkowskich jest:

  • Zadeklaruj kompletny zestaw elementów członkowskich dla danej klasy.

  • Określ dostęp (publiczny, prywatny lub chroniony) skojarzony z różnymi członkami klasy.

W deklaracji listy członków można zadeklarować członków tylko raz; ponowna deklaracja członków generuje komunikat o błędzie.Ponieważ lista elementów członkowskich jest kompletnym zestawem elementów członkowskich, nie można dodawać członków do danej klasy z deklaracji kolejnych klas.

Deklaratory członków nie mogą zawierać inicjatorów.Dostarczanie inicjatorów generuje komunikat o błędzie, jak zostało to przedstawione w poniższym kodzie:

// 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()
{
}

Ponieważ osobne wystąpienie niestatycznego członka danych jest tworzone dla każdego obiektu typu danej klasy, prawidłowy sposób, aby zainicjować dane elementu członkowskiego jest użycie konstruktora klasy. (Konstruktory są objęte w Konstruktory,.)

Istnieje tylko jedna kopia udostępnionych danych statycznych elementów członkowskich dla wszystkich obiektów typu danej klasy.Dane statyczne członków muszą być zdefiniowane i mogą być zainicjowane w zakresie pliku. (Aby uzyskać więcej informacji dotyczących elementów członkowskich danych statycznych, zobacz Statyczne członki danych.) Poniższy przykład pokazuje sposób wykonywania takiego inicjowania:

// 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()
{
}

[!UWAGA]

Nazwa klasy CanInit musi znajdować się przed i, aby określić, że i definiowany jest członkiem klasy CanInit.

Specyficzne dla firmy Microsoft

Microsoft C++ umożliwia statyczne, statyczne całkowite, statyczne wyliczeniowe członki danych do zainicjowana w definicji klasy.Zobacz Rozszerzenia Microsoft do C i C++.

Zobacz też

Informacje

Klasy, struktury i związki