Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C - C++ Learning > Re: Still havin...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 3 of 14 Topic 4050 of 4302
Post > Topic >>

Re: Still having problems with my member function pointers

by Triple-DES <DenPlettfrie@[EMAIL PROTECTED] > Mar 6, 2008 at 08:39 AM

On 6 Mar, 17:27, "Alf P. Steinbach" <al...@[EMAIL PROTECTED]
> wrote:
> * Andrew Falanga:
> > =A0About two weeks ago (or so) I posted here that I was having
problems
> > with getting a member function pointer to point to a member function
> > without giving me grief.
>
> Yes, as a novice you should not use member functions /at all/.
>

At least not through pointers :)

>
> > I've gone to trying this on a trial program
> > that I will post below in its entirety. =A0I just can't get it right
and=

> > although I've tried the suggestions given to me from the other
> > posting, I'm still doing something wrong. =A0So, here's my test
program:=

>
> > #include <iostream>
>
> > class base {
> > =A0 =A0int somedata;
>
> > =A0 =A0public:
> > =A0 =A0base();
>
> > =A0 =A0int GetData() {
> > =A0 =A0 =A0 return somedata;
> > =A0 =A0}
>
> > =A0 =A0int (base::*ptrMemFunc)();
>
> > };
>
> > base::base() : somedata(5), ptrMemFunc(&base::GetData)
> > {}
>
> > // this one's only in here to make sure I remembered how to use
> > function pointers
> > int AnInt() {
> > =A0 =A0return 5;
> > }
>
> > int main( ) {
> > =A0 =A0base b;
> > =A0 =A0int (*pAnInt)() =3D AnInt;
>
> > =A0 =A0std::cout << pAnInt() << std::endl;
>
> > =A0 =A0b.ptrMemFunc();
>
> "b.ptrMemFunc" is an expression that refers to a non-static member
functio=
n pointer.
>
> "()" tries to call the referred non-static member function, without
specif=
ying
> an object.
>
> That's meaningless.
>
> > =A0 =A0return 0;
> > }
>
> [snip]
>
>
>
> > So, how do I get a class member, that is a function pointer, point to
> > another member function of that class, and the use that pointer to
> > reference these functions in other parts of the code that I'm trying
> > to?
>
> Don't.
>
> Use virtual member functions.

Yes, I think you should look at design and see if there is a way to do
what you want without using a pointer to member function. But I think
the answer you are looking for is:

   (b.*b.ptrMemFunc)();

Hope this helps
DP
 




 14 Posts in Topic:
Still having problems with my member function pointers
Andrew Falanga <af300w  2008-03-06 07:45:14 
Re: Still having problems with my member function pointers
"Alf P. Steinbach&qu  2008-03-06 17:27:18 
Re: Still having problems with my member function pointers
Triple-DES <DenPlettfr  2008-03-06 08:39:26 
Re: Still having problems with my member function pointers
Andrew Falanga <af300w  2008-03-06 08:41:02 
Re: Still having problems with my member function pointers
"Alf P. Steinbach&qu  2008-03-06 17:49:40 
Re: Still having problems with my member function pointers
Andrew Falanga <af300w  2008-03-06 08:56:09 
Re: Still having problems with my member function pointers
"Alf P. Steinbach&qu  2008-03-06 19:19:36 
Re: Still having problems with my member function pointers
Triple-DES <DenPlettfr  2008-03-06 09:07:53 
Re: Still having problems with my member function pointers
Bart van Ingen Schenau &l  2008-03-06 18:49:13 
Re: Still having problems with my member function pointers
Andrew Falanga <af300w  2008-03-06 10:04:26 
Re: Still having problems with my member function pointers
Triple-DES <DenPlettfr  2008-03-06 10:57:45 
Re: Still having problems with my member function pointers
Andrew Falanga <af300w  2008-03-06 11:43:17 
Re: Still having problems with my member function pointers
Andrew Falanga <af300w  2008-03-06 11:47:30 
Re: Still having problems with my member function pointers
Triple-DES <DenPlettfr  2008-03-06 22:03:46 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Mon Oct 13 20:17:30 CDT 2008.