c++類中有一種型別成員,屬於類本身,而不屬於類的物件,這種型別成員成為類成員,而屬於物件的成員成為物件成員或例項成員。可以使用關鍵字static來建立乙個類成員。
class c
;unsigned c:
:n=0
;//在外部定義時不需要加static
在類宣告內部宣告的static資料成員必須在任何程式塊之外定義。通過外部定義將c::n初始化為0,但這不是必須的,因為在建立第乙個物件時,所有的靜態資料都會被初始化為零,除非提供乙個不同的初值。並且在類體外定義的,不必使用static
static資料成員不會影響該類及其物件的sizeof。
#include
using namespace std;
class c
;int
main()
除了static資料成員,類還可以有static成員函式。靜態成員函式只能訪問其他的static成員,包括資料成員和成員函式。
class c
private:
unsigned n;
}
靜態成員函式與非靜態成員函式差別是:非static成員函式既可以訪問static資料成員,也可以訪問非static資料成員;而static成員函式只能訪問static成員。
有兩種不同方式來訪問類的static成員,既可以通過c的物件來訪問,也可以直接通過類c來訪問。
#include
using namespace std;
class c
private:
static
unsigned n;};
unsigned c:
:n=10
;int
main()
#include
using namespace std;
class c
;unsigned c:
:n=100
;void c::m
()intmain()
輸出結果:
s=1n=
100s=2n=
101s=3n=
102
本例在成員函式m中定義了乙個static變數s,由於s定義在程式塊內,他擁有程式塊範圍,因為只能在m內部訪問。每呼叫m一次,s就會相應的增加一次,又因為m是c的成員函式,所以c的所有物件都共享這個靜態區域性變數,這樣,對m的每一次呼叫訪問的都是同乙個s,同樣,對於靜態區域性變數n來說,它也是乙個靜態區域性變數,所以c的所有物件也都共享這個區域性變數。 物件導向 例項成員 類方法 類成員
1.語法 1 定義 物件.變數名 2 呼叫 物件.變數名 2.說明 1 首次通過物件賦值為建立,再次賦值為修改.w01 wife w01.name 麗麗 w01.name 莉莉 2 通常在建構函式 init 中建立。w01 wife 麗麗 24 print w01.name 3 每個物件儲存乙份,通...
物件導向程式設計和類
class product def init self,name self.name name self.label price 0 self.real price 0 c product 電腦 d product 印表機 e product 投影儀 c.label price,c.real pri...
c 物件導向程式設計 類和物件(基礎)
目錄 類的資料成員和成員函式 在類體之外定義成員函式 內聯函式 物件的建立 類成員的訪問 建構函式和析構函式 複製建構函式 物件指標 this指標 靜態類成員 靜態資料成員的宣告,初始化與訪問 靜態成員函式 動態記憶體分配 class 類名 public 公有資料成員,公有成員函式 protecte...