From: William DOT Gacquer AT obspm DOT fr (root) Subject: Why doesn't it compile? HELP with pointers! 27 Nov 1997 14:14:03 -0800 Message-ID: <347DC1AF.4CBCB01D.cygnus.gnu-win32@obspm.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: gnu-win32 AT cygnus DOT com Hi! I am new with cygwin32 but not with gcc. When I compile the following code on my linux box with g++, it works fine. But it does not with gnu-win32. Can you try to compile it and tell me what is wrong? Many Thanks, William Gacquer ___________________________________________________________________ /// @AUTHOR : William Gacquer // @DATE : 1997/11/01 // @TITLE : les pointeurs sur fonctions en C++ // // De l'art d'utiliser les pointeurs sur des fonctions (membres ou non) // ce petit exercice peut etre incorpore dans un cours sur le C++. // il est explicite et permet de decouvrir les trois facons differentes // de manipuler les pointeurs sur fonctions. // // Cet exercice n'utilise pas la STL. #include #include #include class m { double c; public: double wg_mul(double aa, double bb) { c = aa*bb; return c; } double wg_pow(double aa, double bb) { c = pow(aa,bb); return c; } double (m::*fcnn)(double aa, double bb); void pointe(int n) { if (n==1) fcnn = & m::wg_mul; if (n==2) fcnn = & m::wg_pow; } double calcul(double a, double b) { c = (fcnn)(a,b); return c; } }; double wg_add(double aa, double bb) { return (aa+bb); } double wg_div(double aa, double bb) { return (aa/bb); } int main() { double a; double b; a=2.0; b=4.0; double c; // pointeur classiques sur fonctions non-membres double (*fcn)(double aa, double bb); fcn=&wg_div; c=(*fcn)(a,b); cout << c << " = 0.5?" << endl; fcn=&wg_add; c=(*fcn)(a,b); cout << c << " = 6?" << endl; // pointeur sur fonction membre par interface (le pointeur fait partie // de la classe) m momo; momo.pointe(1); c=momo.calcul(a,b); cout << c << " = 8?" << endl; momo.pointe(2); c=momo.calcul(a,b); cout << c << " = 16?" << endl; // pointeur direct sur fonction membre. le pointeur n'est pas defini // dans la classe. double (m::*pfd)(double, double); pfd = & m::wg_mul; c = (momo.*pfd)(a,b); cout << c << " = 8?" << endl; } - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".