C 靜態成員和成員指標

2021-10-02 18:53:40 字數 2825 閱讀 5440

靜態成員函式

單例模式

成員指標

靜態成員變數:

class 類名

; 資料型別 類名::變數 = 初值;//定義和初始化

類名::靜態成員變數;//推薦

物件.靜態成員變數;//和上面等價

#include

using

namespace std;

class

aint m_data;

static

int s_data;

//宣告};

//靜態成員變數的定義和初始化要在類的外部完成

int a::s_data =

100;

//定義

intmain

(void

)

class 類名

};

類名::靜態成員函式(實參表)

;//推薦

物件.靜態成員函式(實參表)

;//和上面等價

#include

using

namespace std;

class

astatic

void

func1

(void

)void

func2

(void

)int m_data;

static

int s_data;

//宣告};

int a::s_data =

100;

//定義

intmain

(void

)

概念:乙個類只允許存在唯一的物件,並提供它的訪問方法。

建立思路:

建立方式:

//單例模式:餓漢式

#include

using

namespace std;

class

singleton

void

print

(void

)const

private

://1)私有化建構函式

singleton

(int data=0)

:m_data

(data)

singleton

(const singleton&);

private

:int m_data;

//2)使用靜態成員變數表示唯一的單例物件

static singleton s_instance;};

singleton singleton::

s_instance

(12345);

intmain

(void

)

//單例模式:懶漢式

#include

using

namespace std;

class

singleton

//單例物件不用即銷毀

//單例物件可能有多個使用者,應該是最後

//乙個使用者用release才去delete

void

release

(void)}

void

print

(void

)const

private

://1)私有化建構函式

singleton

(int data=0)

:m_data

(data)

singleton

(const singleton&);

~singleton

(void

)private

:int m_data;

//2)使用靜態成員變數表示唯一的單例物件

static singleton* s_instance;

//計數:記錄單例物件使用者的個數

static

int s_count;};

singleton* singleton::s_instance =

null

;int singleton::s_count =0;

intmain

(void

)

型別 類名::*成員指標變數名 =

&類名::成員變數;

物件.*成員指標變數名;

物件指標->*成員指標變數名;

返回型別 (類名::*成員函式指標)

(形參表)

=&類名::成員函式名;

(物件.*成員函式指標)

(實參表)

(物件->*成員函式指標)

(實參表)

「.*」稱為直接成員解引用操作符

「->*」稱為間接成員解引用操作符

#include

using

namespace std;

class

student

void

who(

void

) string m_name;};

intmain

(void

)

C 指標 this指標 靜態成員

this指標指向呼叫的物件本身,在成員函式中,都會有乙個預設的引數this。這點如果學過python的話,可能會知道,在python中每乙個成員函式都會乙個引數self,這裡的this就是差不多的東西。其實具體來說,this指標也是指標,它儲存的也是乙個位址。當我們用乙個物件去呼叫乙個成員函式時,我...

C 靜態成員和非靜態成員

一 c 靜態成員和非靜態成員 1.c 靜態成員和非靜態成員 當類中的某個成員使用static修飾符時,就會被宣告為靜態成員。類中的成員要麼是靜態成員,要麼是非靜態成員。一般情況下,靜態成員屬於整個類所有,被該類的所有例項所共享。而非靜態成員則屬於類的例項 物件所有,只被該例項所共享。因此,對於類的靜...

C 靜態成員函式和this指標詳解

目錄 靜態成員就是在成員變數和成員函式前加上關鍵字static,稱為靜態成員 靜態成員分為 所有物件共享同乙份資料 在編譯階段分配記憶體 類內宣告,類外初始化 示例 include using namespace std class person int person m 0 類內宣告,類外初始化 ...