delorie.com/archives/browse.cgi | search |
Newsgroups: | comp.os.msdos.djgpp |
From: | tob AT world DOT std DOT com |
Subject: | Re: An OOP question - pointer to member function |
Message-ID: | <ErKyCI.5q1@world.std.com> |
Sender: | tob AT world DOT std DOT com (Tom Breton) |
Reply-To: | tob AT world DOT std DOT com |
Organization: | BREnterprises |
References: | <3536C543 DOT 70D1EF9A AT ms1 DOT accmail DOT com DOT tw> |
Date: | Fri, 17 Apr 1998 22:55:30 GMT |
Lines: | 37 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
VAMPYR <vampyr AT ms1 DOT accmail DOT com DOT tw> writes: > ================================================== > class BASE > { > public: > void (BASE::*member_func_ptr)(void); > }; > > class HERO : public BASE > { > public: > void action(void); > }; > > void main() > { > class HERO Vampyr; > > Vampyr.member_func_ptr = &Vampyr::action; ^^^^^^^^ No. Use "::" with the class name, not the object name. Also, HERO::action is of the wrong type to assign to member_func_ptr, (void (HERO::*) (void)). Making "action" a virtual function in "BASE" should do what you want. > } > ============================================== Tom -- After 1 July 1998 Washington state law levies a $500 fine for sending e-mail to this address which conceals its point of origin or has a misleading subject line. The sender must determine recipient location.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |