Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Intermediate
Nov 14, 2000

Taking an Address of a Member Function

The name of an ordinary function is implicitly converted to its memory address. For example:

 
typedef int (*pf) ();
int func();
pf=func; // OK, 'func' is implicitly converted to '&func'

However, member functions don't behave this way. To take their address, you must precede the address-of operator to their qualified name:

 
class A;
typedef int (A::*pmf)();
class A
{
  pmf p; //pointer to member
public:
 int func();
 A() { p=&A::func;} //OK
};

Note that the following code will cause a compilation error:

 
A() { p=func;} // error, '&A::' missing 
Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap