🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #426

Re: [C++] La misma funci�n con distintos nombres (y comportamiento)

#426
From: Pedro Maicas
Date: Thu, 13 Mar 2008 19:11
71 lines
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-mail
References: <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