首頁 > 後端開發 > C++ > 主體

C 成員函數指標:何時使用 `->*` 與 `.`?

DDD
發布: 2024-11-17 14:00:04
原創
185 人瀏覽過

C   Member Function Pointers: When to Use `->*` 與 `.`?
「 />*` 與 `.`?

C 中的成員函數指標:揭秘>* 和.

許多程式設計師發現指向成員的指標運算子> 和. 在C 語言中令人困惑,本文闡明了它們的用法以及何時使用它們而不是傳統的> ..

理解>* 和.

> 和. 是允許您存取成員函數的指向成員的指標運算子當您需要將成員函數動態綁定到某個物件時,可以使用這些運算子。 🎜>

    >*:
  • 當指標和物件類型相同時使用此運算子。類別時使用此運算子type.
  • 範例:
  • 考慮下列類別:

要建立一個指向成員函數f 的指針,我們可以使用typedef:

現在,我們可以將f 指派給指標somePointer:

struct X
{
   void f() {}
   void g() {}
};
登入後複製

要使用指標呼叫成員函數,我們需要一個物件:

typedef void (X::*pointer)();
登入後複製

如果x 是指向物件的指針,我們需要使用>*相反:

pointer somePointer = &X::f;
登入後複製

用法場景:
X x;
(x.*somePointer)(); // Calls x.f()
登入後複製

在需要將成員函數作為參數傳遞給函數或將它們儲存在容器中的場景中,通常需要使用>
X* px = new X;
(px ->* somePointer)(); // Calls px->f()
登入後複製
和.

。 。了解它們的用法以及何時使用它們而不是傳統的>和.,可以增強程式碼的靈活性和可重用性。

以上是C 成員函數指標:何時使用 `->*` 與 `.`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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