🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #173

does "virtual" mean run-time computed function call ?

#173
From: Rech TURLAIS Tel 4216 15-01-92 M...
Date: Wed, 05 Aug 1992 12:36
50 lines
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!turlais
References: <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