前言:
成員函式:無論靜態函式還是非靜態函式,都是屬於類的(這一點與資料成員的靜態非靜態不同),物件並不擁有函式的拷貝.兩者的區別在於:非靜態的函式由類物件(加.或指標加->;)呼叫,這時將向函式傳遞this指標.而靜態函式由類名(或物件名.)呼叫,但靜態函式不傳遞this指標,不識別物件個體,所以通常用來對類的靜態資料成員操作.
c++會區分兩種型別的成員函式:靜態成員函式和非靜態成員函式。這兩者之間的乙個重大區別是,靜態成員函式不接受隱含的this自變數。所以,它就無法訪問自己類的非靜態成員。
在類中,靜態成員可以實現多個物件之間的資料共享,並且使用靜態資料成員還不會破壞隱藏的原則,即保證了安全性。因此,靜態成員是類的所有物件中共享的成員,而不是某個物件的成員。
使用靜態資料成員可以節省記憶體,因為它是所有物件所公有的,因此,對多個物件來說,靜態資料成員只儲存一處,供所有物件共用。靜態資料成員的值對每個物件 都是一樣,但它的值是可以更新的。只要對靜態資料成員的值更新一次,保證所有物件訪問更新後的相同的值,這樣可以提高時間效率。
靜態資料成員的使用方法和注意事項如下:
靜態資料成員在定義或說明時前面加關鍵字static。
靜態成員初始化與一般資料成員初始化不同。靜態資料成員初始化的格式如下:《資料型別》《類名》::《靜態資料成員名》=《值》
#include
using namespace std;
class
m static void f1(m m)
;private:
int a;
static int b;};
void m:
:f1(m m)
int m:
:b=0
;//靜態資料成員初始化的格式《資料型別》
《類名》::
《靜態資料成員名》=
《值》void main(
)
沒有加static關鍵字宣告的變數 類中的靜態成員變數 靜態成員函式
類中的靜態成員變數 靜態成員函式?1 類中的靜態成員變數 靜態成員變數屬於整個類,不屬於某個特定的物件,因此無論建立了多少個物件,所有物件都共享類中的靜態成員變數。靜態成員變數必須在類內宣告,類外初始化。2 類中的靜態成員函式 靜態成員函式也是屬於類本身,而不屬於某個特定的物件。靜態成員函式與普通成...
c 中靜態成員和靜態成員函式
1.靜態成員屬於整個類 2.靜態成員函式不能使用普通成員變數,只能使用靜態成員。pragma once class location include location.h include iostream using namespace std location location int a loc...
靜態成員 靜態成員函式
reference to non static member function must be called sort numbers.begin numbers.end cmp 做演算法題的時候遇到的乙個問題,和成員函式相關,這裡記錄一下備忘。首先上 class solution string p...