Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Settembre 16, 2012, 11:09:07 am

Titolo: Chiamata procedure con default
Inserito da: bonmario - Settembre 16, 2012, 11:09:07 am
Ciao a tutti,
data questa dichiarazione:
Codice: [Seleziona]
procedure Pippo(Param1:Integer = 0; Param2:Integer = 2; Param3:Integer = 9);
posso richiamare "Pippo" senza passare nessun parametro e lui mi prende i valori 0, 2, 9.

C'č una cosa perņ che non ho mai capito: se io volessi richiamare Pippo forzando solo il secondo parametro e lasciando il default per gli altri 2, come devo fare?
Una cosa del tipo:
Codice: [Seleziona]
Pippo(default, 5, default)

Grazie in anticipo, Mario
Titolo: Re:Chiamata procedure con default
Inserito da: nomorelogic - Settembre 16, 2012, 03:50:51 pm
quel tipo di dichiarazione serve a specificare valori di default per parametri omessi ma da una certa posizione in poi.
non č possibile invece "saltare" i parametri, neanche se sono di questo tipo.

quello che puoi fare č dichiarare una procedura omonima come "overload" tenendo perņ presente che i parametri con valore di default, nella dichiarazione, non sono discriminatori.

mi spiego meglio:
se hai dichiarato
Codice: [Seleziona]
procedure Pippo(Param1:Integer = 0; Param2:Integer = 2; Param3:Integer = 9); overload;

non puoi dichiarare
Codice: [Seleziona]
procedure Pippo; overload;

in quanto a runtime non sarebbe possibile stabilire quale procedura lanciare...