靜態成員和靜態成員函式

2021-07-10 21:29:52 字數 829 閱讀 4838

靜態成員和靜態成員函式

普通成員變數每個物件有各自的乙份,而靜態成員變數一共就乙份,為所有物件共享。

靜態成員物件不需要通過物件就能訪問

class crectangle;

crectangle::crectangle(int i,int j)

crectangle::~crectangle()

int crectangle::ntotalarea=0;

int crectangle::ntotalnumber=0;

void crectangle::printtotal()

輸出:

靜態成員函式不能訪問非靜態成員變數

因為靜態成員函式不是作用於物件,假設是訪問非靜態成員變數w,不知道是哪個物件的。

靜態成員函式也不能訪問非靜態成員函式,因為非靜態函式可以訪問非靜態成員,所以不可訪問。

另需要考慮複製建構函式問題,

當引數為乙個物件或者返回值為乙個物件,異或直接構造初始化 class a(b);這些會導致生成臨時變數,矩形數量會增多。

crectangle::crectangle(const crectangle & a)

靜態成員和靜態成員函式

靜態成員函式的特點 1.static資料成員在類內的內部宣告,但只能在類的外部定義,在類的外部不能指定static,在類的定義時候驚醒初始化 2.static資料成員只能在課的外部進行初始化 特例 當整形const static資料成員被常量表示式初始化,就可以在類內進行初始化,但還需要在外部進行定...

靜態成員變數 和 靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

靜態成員變數和靜態成員函式

我們學到的類物件的成員變數一般都是這個物件專屬,不能為其他物件所共有。然而在實際程式設計中我們需要統計物件的數量等問題,所以就必須設定乙個類的物件所共有的變數,就是靜態成員變數。首先通過乙個簡單的例程 說明靜態成員如何使用。includeusing namespace std class a vir...