[Win32-dev] info on pointer to member function...
Bret McMillan
brm@acpub.duke.edu
Tue, 2 Nov 1999 12:24:14 -0500
> The best way I found to do it would be to basically have a static
function
> that would take as a parameter the object, which would then be stored as
one of
> the parameters to pass the callback. When the callback is then recieved,
one
> would simply have the funciton call the given member function of the
object
> passed.
Here's something from good ol' Bjarne:
Consider the following class:
class Std_interface {
public:
...
virtual void suspend() = 0;
...
virtual ~Std_interface() {}
};
To invoke suspend() without calling it directly, consider this example:
typedef void (Std_interface:: * Pstd_mem) (); // pointer to member type...
/*
Note that this is for a void function that takes no parameters. For one w/
parameters, I'm pretty sure you just put them in the ()'s at the end...
*/
void f(Std_interface* p)
{
Pstd_mem s = &Std_interface::suspend;
// direct call...
p->suspend();
// call through pointer to member...
(p->*s)();
}
God I love C++. <g>
Bret