《物件導向程式設計 C 》類資料成員和類成員函式

2021-09-03 03:14:14 字數 1457 閱讀 7230

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...