靜態成員函式

靜態成員函式會被視為具有類別範圍。相對於非靜態成員函式,這些函式具有不隱含這個數字。 因此,他們可以使用靜態資料成員、 列舉值或巢狀型別直接。不需使用對應的類別型別的物件,就能存取靜態成員函式。請考量以下範例:

範例

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

註解

在上述程式碼類別中StaticTest包含靜態成員函式count。這個函式會傳回私用類別成員的值,但不一定與指定的物件型別的StaticTest。

靜態成員函式有外部連結。這些函式並沒有這個指標。如此一來,這類函式來套用下列限制:

  • 也不能存取非靜態類別成員資料使用的成員選取運算子 (. or –>).

  • 不可以宣告為虛擬

  • 它們不能有相同的名稱,為非靜態函式具有相同的引數型別。

    注意事項注意事項

    成員選取運算子的左邊 (.->) 選取一個靜態成員函式並不進行評估。這是很重要如果函式用於其副作用。例如,運算式SideEffects().CountOf()不會呼叫此函式SideEffects。

請參閱

參考

這個指標