Lazarus

Other Languages => Spanish => Topic started by: zelda16bit on June 11, 2021, 02:52:58 pm

Title: pregunta de sobrecarga del operador
Post by: zelda16bit on June 11, 2021, 02:52:58 pm
Hola.

Estoy en el apartado 8.9 del manual.
https://castle-engine.io/modern_pascal_introduction.html#_operator_overloading

Aqui se explica la sobrecarga del operador pero no entiendo los ejemplos,podria alguien explicarme con un ejemplo mas sencillo como usar esto y para que sirve.
Title: Re: pregunta de sobrecarga del operador
Post by: lucamar on June 11, 2021, 03:04:44 pm
Difícilmente puede ser más sencillo, pero vamos a intentarlo.

Supón que quieres que cada vez que escribas:
Code: Pascal  [Select][+][-]
  1. Cadena1 * Cadena2
el resultado sea ambas cadenas unidas con un salto de línea, como si hubieras hecho:
Code: Pascal  [Select][+][-]
  1. Cadena1 + LineEnding + Cadena2
Como el operador "*" no existe para cadenas, tienes que crear uno (o sea, "sobrecargar" el operador para que también funcione con cadenas):
Code: Pascal  [Select][+][-]
  1. operator* (const S1, S2: string): string;
  2. begin
  3.   Result := S1 + LineEnding + S2;
  4. end;

Y ya está, desde ese punto, cada vez que hagas:
Code: Pascal  [Select][+][-]
  1. UnaCadena := OtraCadena * OtraCadenaMas
UnaCadena acabará con el valor de las otras dos separadas por un fin de línea.

¿Fácil o no? ;)
Title: Re: pregunta de sobrecarga del operador
Post by: zelda16bit on June 11, 2021, 08:30:18 pm
Pues si que es sencillo,pero eso es porque tu lo explicas mucho mejor que en ese manual.

Gracias. ;)
Title: Re: pregunta de sobrecarga del operador
Post by: lucamar on June 11, 2021, 09:36:13 pm
Pues si que es sencillo,pero eso es porque tu lo explicas mucho mejor que en ese manual.

Vaya, gracias :D
TinyPortal © 2005-2018