在類的靜態成員函式中使用類的非靜態成員

2021-10-09 08:35:13 字數 610 閱讀 2996

我們知道,類的靜態成員函式只能訪問類的靜態資料成員和類的其他靜態函式,eg:

#includeusing namespace std;

class a

static void func2()

void func3()

};int main()

如果我們要在類的靜態成員函式中使用類的非靜態成員函式和非靜態資料成員時,可以通過下面兩種方法:

#includeusing namespace std;

class a

static void func1()

void func2()

private:

static a* instance;

};a* a::instance = null;

int main()

#includeusing namespace std;

class a

static void func1(a a)

void func2()

};int main()

類中使用靜態資料成員

類的靜態成員,保證每個類只有乙個實體,每個物件中不再有它的副本。由於靜態成員脫離物件而存在的性質,所以該實體應該在所有物件產生之前存在,因此,更適合的時機是在程式啟動的時候,做其初始化。include include using namespace std class student void pr...

類靜態成員和類靜態成員函式

當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...

類的靜態成員函式

在一次 移動和重組編輯中,發現有一些函式是幾個類共用的一些演算法實現函式,使用了類的靜態成員函式。新增乙個類utility,如下所示 class utility 在使用該靜態成員函式時 if utility incircle 直接使用類名作為限定符來呼叫靜態成員函式即可,不需要宣告該類的物件。也可以...