Home >Backend Development >C++ >How to Correctly Call and Add C Pointers to Member Functions?
Calling C Pointer to Member Functions
Understanding the proper syntax for invoking pointers to member functions in C is crucial. This question explores the specific method for calling such pointers, as well as the process of adding member functions to a list.
Calling Pointers to Member Functions
The question showcases a code snippet attempting to invoke pointers to member functions using the syntax:
(*h)(xPos, yPos, width, height);
However, the correct syntax requires providing both the named parameters and the this pointer. Therefore, the corrected line becomes:
(box->*h)(xPos, yPos, width, height);
This ensures that the correct this pointer is used when calling the member function.
Adding Member Functions to a List
The question also demonstrates how to add member functions to a list. Here, pointers to member functions are being stored in a std::list. The code below illustrates the process:
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); }
This code iterates through a list of Box pointers and pushes the address of each HitTest member function onto the std::list. Each member function is represented by a pointer to member function that references the this pointer of the specific Box object.
The above is the detailed content of How to Correctly Call and Add C Pointers to Member Functions?. For more information, please follow other related articles on the PHP Chinese website!