首頁 > 後端開發 > C++ > 如何在C中使用指標正確呼叫成員函數?

如何在C中使用指標正確呼叫成員函數?

Linda Hamilton
發布: 2024-12-24 04:32:13
原創
799 人瀏覽過

How to Correctly Call a Member Function Using a Pointer in C  ?

透過成員函數指標呼叫

在 C 中,成員函數指標允許我們透過指標像常規函數一樣對待成員函數。但是,必須遵循某些語法規則以避免編譯錯誤。

考慮以下程式碼,我們嘗試使用成員函數指標呼叫cat 類別的walk 成員函數:

class cat {
public:
   void walk() {
      printf("cat is walking \n");
   }
};

int main(){
   cat bigCat;
   void (cat::*pcat)();
   pcat = &cat::walk;
   bigCat.*pcat();
}
登入後複製

上面的程式碼無法編譯,並出現錯誤「bigCat.*pcat();語句無法編譯。

成員函數指標使用「.」運算符,而函數呼叫使用普通括號。函數呼叫的優先權高於“”。

要解決此問題,需要額外的括號來覆蓋優先權規則:

(bigCat.*pcat)();
登入後複製

透過此更正,程式碼現在將透過成員函數指標正確地呼叫 walk 函數.

以上是如何在C中使用指標正確呼叫成員函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板