Overload di operatori

Overload di operatori

L'overload di operatori con Free Pascal è molto più performante di quello con Delphi (vale solo su strutture) ed è di una semplicità estrema.

La sintassi è la seguente

Codice: [Seleziona]
Operator  [operatore] ([lista variabili]) [variabile di uscita] : [tipo di uscita]


dunque... le variabili di ingresso e di uscita sono inserite solamente per un fatto di compilazione, gli operatori che si possono overloadare sono:

Codice: [Seleziona]
:= 	assegnazione
+ somma
- differenza
* moltiplicazione
/ divisione
** elevazione
= uguaglianza
< minore
maggione
>= maggiore uguale


facciamo un piccolo esempio:

Vogliamo riscrivere l'operatore somma tra una stringa ed un intero (bella cavolata ma gli esempi funzionano cosi')

la dichiarazione sarà

Codice: [Seleziona]
Operator + (a: integer; b: String) c : String;


e lo sviluppo:

Codice: [Seleziona]
Operator + (a: integer; b: String) c : String;
begin
  C := IntToStr(A) + B;
End;


Quindi se assegnamo

Codice: [Seleziona]
Var
  A : Integer;
  S : String;
Begin
  A := 10;
  S := ' Caciotte';


e scriviamo un bel Write(A+S) otteniamo la scritta 10 Caciottte

Semplice no?

SMF 2.0.8 | SMF © 2011, Simple Machines
Privacy Policy
SMFAds for Free Forums
TinyPortal © 2005-2012

Go back to article