Sdílet prostřednictvím


Statická funkce členů

Třídy oboru jsou považovány za statické členské funkce.V kontrastu k nestatické členské funkce mají tyto funkce ne implicitní této argument; Proto se může používat pouze statická data členů, výčtu nebo vnořené typy přímo.Funkce členů statické možný bez použití objektu odpovídající typu třída.Vezměme si jako příklad:

Příklad

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

Komentáře

V předcházejícím kódu třídy StaticTest obsahuje statické členské funkce count.Tato funkce vrací hodnotu člen soukromé třídy, ale není nutně spojen s daný objekt typu StaticTest.

Statický člen funkce mají externí propojení.Tyto funkce nemají tohoto ukazatele.Výsledkem těchto funkcí platí následující omezení:

  • Nelze získat přístup k nestatické třídy členských dat pomocí operátorů výběr členů (. or –>).

  • Nelze deklarovat jako virtuální.

  • Nemohou mít stejný název jako nestatické funkce, která má stejné typy argumentů.

    [!POZNÁMKA]

    V levé části Výběr členů operátor (. nebo – >), že vybere funkce statický člen není vyhodnocena.To může být důležité, pokud je tato funkce použita pro své vedlejší účinky.Například výraz SideEffects().CountOf() není pro volání funkce SideEffects.

Viz také

Referenční dokumentace

Tento ukazatel