Mecanismul de parametri este principala modalitate de schimb de informații între funcțiile apelate și cele de apelare. În instrucțiunea de apel a funcției, sunt scrise argumentele funcției, iar în antetul descrierii funcției sunt afișate parametrii.
În C ++, parametrii sunt transferați în trei moduri:
· Prin copiere (sau prin valoare);
Să luăm în considerare toate cele trei moduri de transfer pe un exemplu de schimbare a funcției Change (). Doi parametri îi sunt transmise și trebuie să-și schimbe valorile.
1. Transfer prin copie (după valoare):
Să descriem activitatea programului. Funcția domeniu de aplicare () principal, există două variabile locale A și B, care sunt initializate prin valorile 10 și 20. La momentul Schimbarea apelului funcției () în stivă sunt parametrii X și Y, care primesc copii ale valorilor A și B de argumente și o temperatură variabilă . Apoi, folosind această variabilă, valorile parametrilor X și Y sunt schimbate (valorile anterioare sunt evidențiate în roșu). Cu toate acestea, la sfârșitul funcției Change (), variabilele X, Y și temp sunt distruse, deoarece sunt variabile locale. iar valorile argumentelor A și B rămân neschimbate.
Astfel, funcția Change () nu rezolvă sarcina atribuită acesteia. Cu toate acestea, acest exemplu ilustrează particularitatea utilizării parametrilor de copiere: nici o modificare a valorii unui parametru în cadrul unei funcții nu este reflectată în valoarea variabilei argument, deoarece parametrul este o variabilă locală. Aceasta este metoda implicită pentru trecerea parametrilor în C ++.
3. Trecerea prin referință:
Atunci când se numește funcția Change (), al doilea nume X și Y apar în argumentele A și B. Prin urmare, funcția Change funcționează direct cu variabilele inițiale A și B și le modifică.
1) nu este necesară memorie pentru a copia argumentele la variabilele locale;
2) nu este nevoie de timp pentru a le crea și distruge.
Transmiterea unui parametru prin referință este de asemenea folosită dacă funcția ar trebui să returneze mai mult de un rezultat, dar mai multe.
TIP Se recomandă specificarea const înainte de toți parametrii, modificarea cărora nu este furnizată în funcție. Acest lucru facilitează depanarea. În plus, locul unui parametru de tip const o constanta poate fi trecut.
Parametrii transmiși la această funcție pot fi de orice tip (de exemplu, reale, structură, enumerare, uniune, pointer), cu excepția unui tablou sau a unei funcții care sunt transmise prin pointeri.