Article View: gnu.g++.bug
Article #173does "virtual" mean run-time computed function call ?
From: Rech TURLAIS Tel 4216 15-01-92 M...
Date: Wed, 05 Aug 1992 12:36
Date: Wed, 05 Aug 1992 12:36
50 lines
1587 bytes
1587 bytes
Le probleme vient du fait que `f' est copie dans un objet temporaire de class
function et que cet objet est passe comme argument a la methode forall.
Si l'argument de forall est un pointeur ou une reference vers class function,
il n'y a pas de copie et ca marche comme on l'espere.
La modification n'est a faire que dans la declaration et la definition de la methode.
P. Turlais .
----------------------------------------------------------------------------
#include <stdio.h>
#define DATA int
class function
{
public:
virtual void funcall(DATA i);
};
virtual void function::funcall(DATA i)
{
printf(" first definition = %d ", i);
}
class function2: public function
{
public:
virtual void funcall(DATA i) { printf(" redefined = %d ", i); }
};
class Bug
{
public:
void forall(class function& f); /// --> Replace with reference
};
void Bug::forall(class function& f) /// --> Replace with reference
{
f.funcall(1);
f.funcall(2);
}
main()
{
Bug b;
function2 f;
b.forall(f);
}
Technical Details
Message-ID:
<9208050836.AA06098@halley.total.fr.recherche>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!halley.total.fr!turlaisReferences:
<9208031644.AA20662@cao-vlsi.ibp.fr>Show Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!halley.total.fr!turlais From: turlais@halley.total.fr (Rech TURLAIS Tel 4216 15-01-92 MJ ) Subject: does "virtual" mean run-time computed function call ? Message-ID: <9208050836.AA06098@halley.total.fr.recherche> Sender: gnulists@ai.mit.edu Reply-To: turlais@rechser.total.fr Organization: GNUs Not Usenet References: <9208031644.AA20662@cao-vlsi.ibp.fr> Distribution: gnu Date: Wed, 5 Aug 1992 12:36:56 GMT Approved: bug-g++@prep.ai.mit.edu Lines: 51