Article View: es.comp.os.linux.programacion
Article #426Re: [C++] La misma funci�n con distintos nombres (y comportamiento)
From: Pedro Maicas
Date: Thu, 13 Mar 2008 19:11
Date: Thu, 13 Mar 2008 19:11
71 lines
2904 bytes
2904 bytes
On Thu, 13 Mar 2008 15:55:18 +0100, Han Solo <hsolo@escomposlinux.org> wrote:
>Pues mira, eso no se me hab�a ocurrido. Es otra idea.
Si tienes una funcion:
void pepito(int a, int b)
{
...........
}
Y quieres a�adir un par�metro, no necesitas cambiar las llamadas,
puedes a la vez cambiar el nombre:
void pepito_nueva(int a, int b, int selector)
{
........... (esto ni lo toco)
}
En tres segundos tienes la nueva funcion, y no necesitas cambiar
los nombres de las llamadas.
Ahora tienes que a�adir dos funciones,
void pepito(int a, int b)
{
pepito_nueva(a, b, true);
}
void juanito(int a, int b)
{
pepito_nueva(a, b, false);
}
En otros cinco segundos solucionado.
Claro que puedes usar un #define si no quieres tocar el
nombre de la funcion. O bien, si usas C++ no toques
el nombre de la funcion ni uses #define porque con a�adir
un par�metro ya basta para que el compilador la distinga de
la original. Y tambie con C++, las dos funciones que
enmascaran la otra pueden ser declaradas 'inline', y
con eso tienes lo m�s parecido a lo que preguntabas que se
puede conseguir.
La solucion de Pascal, no me creo que la vayas a usar :-)
Resumiendo en C++:
//funcion original con otro par�metro
void pepito(int a, int b, int selector);
//dos funciones que llaman a la anterior
inline void pepito(int a, int b)
{
pepito(a, b, true);
}
inline void juanito(int a, int b)
{
pepito(a, b, false);
}
Saludos :-) -Pedro-
http://www.maicas.net/
e-mail en www.maicas.net
Technical Details
Message-ID:
<1ttit3tc3lv535q7iqvqjls4o9ka9otjch@4ax.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!proxad.net!feeder1-2.proxad.net!62.111.101.3.MISMATCH!news.germany.com!storethat.news.telefonica.de!telefonica.de!news.antakira.com!guada07.guadawireless.net!reboot.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mailReferences:
<20080310175215.278cae58@tatooine> <kh9gt3lg71iucof1s3o7n2lt4q9i25od8h@4ax.com> <20080313110147.471fd9fd@tatooine> <20080313113300.7b088cfb@petres.salonet.snet> <orrna5-daq.ln1@pc106.ietcc.csic.es>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,d11cae33929ec158 X-Google-Attributes: gidf86c8,public,usenet X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!proxad.net!feeder1-2.proxad.net!62.111.101.3.MISMATCH!news.germany.com!storethat.news.telefonica.de!telefonica.de!news.antakira.com!guada07.guadawireless.net!reboot.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mail From: Pedro Maicas <esta_no_es@jet.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: [C++] La misma funci�n con distintos nombres (y comportamiento) Date: Thu, 13 Mar 2008 20:11:53 +0100 Organization: escomposlinux.org Lines: 71 Message-ID: <1ttit3tc3lv535q7iqvqjls4o9ka9otjch@4ax.com> References: <20080310175215.278cae58@tatooine> <kh9gt3lg71iucof1s3o7n2lt4q9i25od8h@4ax.com> <20080313110147.471fd9fd@tatooine> <20080313113300.7b088cfb@petres.salonet.snet> <orrna5-daq.ln1@pc106.ietcc.csic.es> NNTP-Posting-Host: 231.pool85-55-128.dynamic.orange.es Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: hercules.cohp1 1205435518 27858 85.55.128.231 (13 Mar 2008 19:11:58 GMT) X-Complaints-To: newsmaster@news-17.escomposlinux.org NNTP-Posting-Date: Thu, 13 Mar 2008 19:11:58 +0000 (UTC) X-Newsreader: Forte Agent 1.8/32.553