Udostępnij za pośrednictwem


Statyczne funkcje członkowskie

Funkcji statycznych elementów członkowskich jest uznawany za zakres klasy.W odróżnieniu od funkcji niestatycznego członka niejawne nie ma tych funkcji to argumentu; w związku z tym może użyć danych statycznych elementów członkowskich, numeratorów lub zagnieżdżonych typów bezpośrednio.Funkcji statycznych elementów członkowskich są dostępne bez użycia obiektu danego typu klasy.Rozważmy następujący przykład:

Przykład

// static_member_functions.cpp
#include <stdio.h>

class StaticTest
{
private:
    static int x;
public:
    static int count()
    {
        return x;
    }
};

int StaticTest::x = 9;

int main()
{
    printf_s("%d\n", StaticTest::count());  // 9
}

Komentarze

W poprzednim kodzie klasy StaticTest zawiera funkcję członka statycznego count.Ta funkcja zwraca wartość elementu członkowskiego prywatnych klasy, ale nie jest musi być skojarzony z danym obiektem typu StaticTest.

Funkcje statycznych elementów członkowskich mają powiązania zewnętrznego.Te funkcje nie są to wskaźniki.W związku z tym następujące ograniczenia dotyczą takie funkcje:

  • Nie można uzyskać dostęp do danych elementu członkowskiego niestatycznego klasy przy użyciu operatorów wybranych elementów członkowskich (. lub –>).

  • Nie można zadeklarować jako wirtualnego.

  • Nie mogą jednak mieć taką samą nazwę jak niestatycznego funkcję, która ma ten sam typ argumentu.

    [!UWAGA]

    Z lewej strony operatora wybranych elementów członkowskich (. lub –>) czy wybiera funkcja statycznych elementów członkowskich nie jest obliczone.Może to być ważna, jeśli funkcja jest używana do jej efekty uboczne.Na przykład, wyrażenie SideEffects().CountOf() nie wywołaniu funkcji SideEffects.

Zobacz też

Informacje

this — wskaźnik