首頁 >後端開發 >C++ >如何正確呼叫和新增C指標到成員函數?

如何正確呼叫和新增C指標到成員函數?

Susan Sarandon
Susan Sarandon原創
2024-12-07 14:33:12514瀏覽

How to Correctly Call and Add C   Pointers to Member Functions?

呼叫 C 成員函數指標

理解 C 中呼叫成員函數指標的正確語法至關重要。本題探討了呼叫此類指標的具體方法,以及將成員函數新增至清單的過程。

呼叫成員函數的指標

該問題展示了嘗試使用以下語法呼叫指向成員函數的指標的程式碼片段:

(*h)(xPos, yPos, width, height);

但是,正確的語法需要同時提供命名參數和this 指標。因此,修正後的行變為:

(box->*h)(xPos, yPos, width, height);

這確保了在呼叫成員函數時使用正確的 this 指標。

將成員函數加入列表

該問題也示範如何將成員函數加入列表。這裡,指向成員函數的指標儲存在 std::list 中。下面的程式碼說明了這個過程:

std::list<HitTest> list;

for (std::list<Box*>::const_iterator i = boxList.begin(); i != boxList.end(); ++i)
{
    Box * box = *i;
    list.push_back(&box->HitTest);
}

此程式碼迭代 Box 指標列表,並將每個 HitTest 成員函數的位址推送到 std::list 上。每個成員函數都由指向成員函數的指標表示,該成員函數會引用特定 Box 物件的 this 指標。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn