關於函式指標

2021-04-21 03:54:43 字數 541 閱讀 1128

函式指標在c、c++中的應用是有所區別的,如

int add(int x1,int x2)

return x1+x2;

int main()

void ctest::test()

int (ctest::*f)(int,int);    

f = add;

int nret = (this->*f)(1,2);    //為什麼一定要註明this->呢? 是需要指明這個object物件嗎?

void main()

{ctest c;

int (ctest::*p)(int,int);

p=ctest::add;

int nret = (c.*p) (1,2);

在使用c++的函式指標時,為什麼一定要註明類的域呢?我想是由於c、c++中函式的壓棧方式不同,所以不能寫成 int (*f)(int,int);而需要寫為int (ctest::*f)(int,int);  這種方式

另外還有幾點疑問的地方,希望能有高手講解明白。。。 。。。

函式指標 關於函式指標與指標函式

指標函式顧名思義,本質還是函式,不同的是改函式的返回型別為指標型別。接下來我們舉個例子。include using namespace std char output intmain 這裡的char output 就是個指標函式 char 的函式,即返回值為char 型別的。這裡的 如果gcc g ...

關於函式指標與指標函式

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...

關於函式指標

函式存放在記憶體的 區域內,它們同樣有位址,我們如何能獲得函式的位址呢?如果我們有乙個int test int a 的函式,那麼,它的位址就是函式的名字,這一點如同陣列一樣,陣列的名字就是陣列的起始位址。定義乙個指向函式的指標用如下的形式,以上面的test 為例 int fp int a 這裡就定義...