[C con Clase] ayuda operator() por favor!!!!!

David fire ddfire en gmail.com
Mie Ago 19 21:01:11 CEST 2009


mi problema es que muchos objetos no tengo idea de donde son instanceados,
entonces termino viendo en el codigo funciones y objetos iguales, incluso
los nombres son un desastre.
tengo

x(algo,otra_cosa);
objeto->funcion(algo);
funcion(asd);
algo(asd); y no se si es funcion, objeto,la palabra divina o el monitor que
tira cosas al azar.
y esto se extiende en unos varios miles de archivos.....

David





El 19 de agosto de 2009 15:56, Steven Davidson <srd4121 en njit.edu> escribió:

> Hola David,
>
> David fire wrote:
>
>> hola
>> alguien tiene algo de info sobre la sobrecarga del operador "( )".
>> ya se que el codigo se hace ilegible, no lo hice yo toy leyendo un codigo
>> que tiene eso y necesito algo de info apra poder desifrar el codigo. entre
>> ellas este operador es unario? binario? n-ario?
>>
>
> Es n-ario, pero requiere como mínimo un operando, como es lógico.
>
>  se les ocurre alguna forma de saber si se esta usando la sobrecarga
>> del operador y no una llamada a funcion? que no signifique saber
>> todas las variables del codigo.
>>
>
> Recuerda que una llamada a una función requiere el nombre de la función o
> al menos un puntero a la función. Si usamos el operador () sobrecargado,
> entonces el primer operando es un objeto. Por ejemplo,
>
> class Cuadratica
> {
> private:
>  double x;
>
> public:
>  Cuadratica( double xx = 0.0 ) : x(xx) {}
>
>  double operator()( double a, double b, double c )
>  {
>    return (a*x + b)*x + c;
>  }
> };
>
> Usamos este operador de la siguiente manera:
>
> int main()
> {
>  Cuadratica x(5.0);
>
>  cout << "-2x^2 + 3x - 5 = " << x(-2,3,-5) << endl;
>  cout << "Nota: x = " << x << endl;
>
>  return 0;
> }
>
> Aquí podemos ver claramente que 'x' es un objeto de la clase 'Cuadratica'.
> Si 'x' fuese declarada como una función (o un puntero a una función),
> entonces aparecería su prototipo por alguna parte.
>
> Obviamente, se permite la sobrecarga del operador () para que las
> expresiones aparenten ser llamadas a funciones.
>
>
> Espero haber aclarado la duda.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
(\__/)
(='.'=)This is Bunny. Copy and paste bunny into your
(")_(")signature to help him gain world domination.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090819/7bb5975c/attachment.html>


Más información sobre la lista de distribución Cconclase