delorie.com/archives/browse.cgi | search |
Message-ID: | <397D8764.BA29E1BF@networkusa.net> |
From: | Weiqi Gao <weiqigao AT networkusa DOT net> |
Organization: | Object Computing, Inc. |
X-Mailer: | Mozilla 4.72 [en] (X11; U; Linux 2.2.14-5.0 i586) |
X-Accept-Language: | en |
MIME-Version: | 1.0 |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Pointer to a function in class? |
References: | <8li587$566$1 AT nnrp1 DOT deja DOT com> |
Lines: | 55 |
Date: | Tue, 25 Jul 2000 07:26:12 -0500 |
NNTP-Posting-Host: | 216.15.147.96 |
X-Trace: | news1.i1.net 964527922 216.15.147.96 (Tue, 25 Jul 2000 07:25:22 CDT) |
NNTP-Posting-Date: | Tue, 25 Jul 2000 07:25:22 CDT |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
sami3079 AT my-deja DOT com wrote: > > Hello, > > How do I get a pointer to a function in class? > > Here is how I've tried: > > ---- > class myclass > { > public: > > void myfunction(); > void otherfunction(); > }; > > void myclass::myfunction() > { > ... > } > > void myclass::otherfunction() > { > void *p = this->*myfunction; > } > ---- > > If I try ''this->*myfunction'' it gives an error message, > that overload not implemented. Does this mean I can't > do this in djgpp? Yes you can. The details are on p.p.418--420 of The C++ Programming Language: void myclass::otherfunction() { // Declare type typedef void (myclass::*pointertomemberfunction)(); // Get the pointer pointertomemberfunction p = &myclass::myfunction; // Call the function through 'this' (this->*p)(); // Make another instance of myclass myclass x = myclass(); // Call the function through the instance (x.*p)(); // Another one, this time a pointer myclass *y = new myclass(); // Call the function through the instance (y->*p)(); } -- Weiqi Gao weiqigao AT networkusa DOT net
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |