Statyczne funkcji elementów członkowskich
Funkcje członka statycznego jest uznawany za klasy zakres.W przeciwieństwie do funkcji niestatycznego członka te funkcje mają niejawne nie to argumentu; w związku z tym one można użyć tylko członkowie dane statyczne, moduły wyliczające lub zagnieżdżonych typów bezpośrednio.Funkcje członka statycznego jest możliwy bez korzystania z obiektu odpowiadającego 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());
}
Komentarze
W poprzednim kodzie klasy StaticTest zawiera funkcję członka statycznego count.Ta funkcja zwraca wartość Członkowskich prywatne klasy, ale nie jest niekoniecznie muszą być związane z danym obiektem typu StaticTest.
Funkcje członka statycznego mają powiązania zewnętrznych.Funkcje te nie mają to wskaźniki.W związku z powyższym do takich funkcji, obowiązują następujące ograniczenia:
Nie mają dostępu do niestatycznego klasy danych przy użyciu operatorów wybranych elementów członkowskich (. or –>).
Nie można zadeklarować jako wirtualnego.
Nie mają taką samą nazwę jak niestatycznego funkcji, która ma te same typy argumentów.
[!UWAGA]
Lewej stronie operatora wybranych elementów członkowskich (. lub ->) czy wybiera funkcji członka statycznego nie jest oceniane.Może to być ważne, jeżeli funkcja jest używana przez jego efekty uboczne.Na przykład, wyrażenie SideEffects().CountOf() nie wywołuje funkcję SideEffects.