類成員函式指標

2021-04-07 04:31:52 字數 632 閱讀 7281

類成員函式指標

類的成員函式分為兩種,一種是靜態函式,另外一種是非靜態函式。例如:

class x

display()為靜態函式,getvalue即為非靜態函式。兩種函式在使用的時候是不一樣的。靜態函式可以直接由類名來呼叫,而非靜態函式則必須通過某乙個物件來呼叫,例如:

x::display();

x x;

x.getvalue();

為什麼會出現這樣的情況了?這是由於編譯器在處理這兩種函式的方式不同造成的。靜態函式在執行期只有乙份拷貝,所有該類生成的物件共享該函式以及該函式的內部變數。而對於非靜態函式,不同的物件擁有自己的內部變數。

在使用類成員函式指標的時候同樣也會不同。

靜態成員函式可以當作全域性函式來呼叫。

可以定義以下函式指標:

typedef void (*pf)();

pf p=x::display;

(*p)();

也可以當作引數傳遞到全域性函式裡:

void display(pf p)

display(x::display);

如果是非靜態成員函式,其函式指標則是另一種寫法:

typedef void (x::*pf2)();

這一類指標只能用於本類之內。

類成員函式指標

類成員函式指標的基本用法 1。宣告 已知簡單的類宣告如下 class screen screen public screen forword int num 1 我們可以這樣宣告乙個指向back成員函式的指標 screen screen back fun int para screen back 其...

類成員函式指標

include using namespace std class human 抽象類human class mother public human 派生類mother從抽象類human繼承 覆蓋純虛函式run void eat 覆蓋純虛函式eat class father public human...

類成員函式指標

使用類成員函式指標需要掌握的三點。1 申明類成員函式指標 2 通過物件指標呼叫類函式指標 3 通過物件呼叫類函式指標 例 定義基類和子類 class base virtual void print2 class derived public base virtual void print2 申明類成...