delorie.com/archives/browse.cgi | search |
From: | horst DOT kraemer AT gmx DOT de (Horst Kraemer) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: DJGPP doesn't understand pointer to member function |
Date: | Sat, 20 May 2000 04:55:05 GMT |
Lines: | 49 |
Message-ID: | <3925959b.142758406@news.cis.dfn.de> |
References: | <8g35td$2mt$15$1 AT news DOT t-online DOT com> |
NNTP-Posting-Host: | pd4b89034.dip.t-dialin.net (212.184.144.52) |
X-Trace: | fu-berlin.de 958798489 703000 212.184.144.52 (16 [27606]) |
X-Newsreader: | Forte Free Agent 1.11/32.235 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
On Fri, 19 May 2000 12:42:47 +0200, "Ortwin Wagner" <owsadlerhorst AT t-online DOT de> wrote: > If I call a member function by means of a pointer like > ... It's not a problem of _calling_, it's a problem of assigning... > class Mammal... > class Horse : public Mammal... > ... > Mammal * ptr=0; > ptr= new Horse; > void (Mammal::*pFunc)() const=0; > pFunc=Mammal::Speak; > (ptr->*pFunc)(); > ... I hope you didn't try to call a function through a null pointer... > DJGPP returns a strange error message: "Assuming & on Mammal::Speak". As far > as I know the code is completely correct and so it looks like a lack of > intelligence of the compiler, doesn't it? According to my experience it's usually the programmer who is lacking intelligence. The correct syntax is pFunc = &Mammal::Speak; and that's what the compiler tried to tell you. Moreover the message means that the compiler _did_ replace you incorrect assignment pFunc = Mammal::Speak; by the correct version pFunc = &Mammal::Speak; (look up a dictionnary what "assume" means) and compiled what you expected. This is definitely a sign of intelligence and not of lack of intelligence, isn't it ? Regards Horst
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |