c 類的靜態成員

2022-06-07 08:36:13 字數 1570 閱讀 2754

寫在前面:在c++中,我們可以使用static關鍵字來把類成員定義為靜態的。當我們宣告類的成員為靜態時,這意味著無論建立多少個類的物件,靜態成員都只有乙個副本。

靜態成員在類的所有物件中是共享的。如果不存在其他的初始化語句,在建立第乙個物件時,所有的靜態資料都會被初始化為零。

我們不能把靜態成員的初始化放置在類的定義中,但是可以在類的外部通過使用範圍解析運算子 ::來重新宣告靜態變數從而對它進行初始化,如下面的例項所示。

#include using

namespace

std;

class

box

double

volume()

private

:

double length; //

長度double breadth; //

寬度double height; //

高度}; //

初始化類 box 的靜態成員

int box::objectcount = 0;

int main(void

)

constructor called.

constructor called.

total objects:

2

如果把函式成員宣告為靜態的,就可以把函式與類的任何特定物件獨立開來。靜態成員函式即使在類物件不存在的情況下也能被呼叫,靜態函式只要使用類名加範圍解析運算子::就可以訪問。

靜態成員函式只能訪問靜態成員資料、其他靜態成員函式和類外部的其他函式。

靜態成員函式有乙個類範圍,他們不能訪問類的 this 指標。您可以使用靜態成員函式來判斷類的某些物件是否已被建立。

#include using

namespace

std;

class

box

//成員函式

double

volume()

//靜態成員函式

static

intgetcount()

private

:

double length; //

長度double breadth; //

寬度double height; //

高度}; //

初始化類 box 的靜態成員

int box::objectcount = 0;

int main(void

)

inital stage count: 0

constructor called.

constructor called.

final stage count:

2

靜態成員函式與普通成員函式的區別:

參考:

C 類靜態成員與類靜態成員函式

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

C 類靜態成員與類靜態成員函式

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

C 類靜態成員與類靜態成員函式

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