Parametrii funcției cu valorile implicite sunt Studopedia

Destul de des atunci când proiectați o funcție, dezvoltatorul realizează că unii dintre parametrii săi în majoritatea covârșitoare a apelurilor au valori specifice definite și numai uneori li se atribuie alte valori. Un exemplu bine cunoscut de matematică este funcția de extragere a rădăcinii. Cele mai frecvente sunt rădăcinile pătrate, astfel încât, în discursul științific cuvântul "rădăcină" implicit înseamnă "rădăcină pătrată". De asemenea, atunci când scriem formule matematice pentru un okrnya pătrat, este permisă omiterea gradului :.







Acest lucru sugerează că, în majoritatea cazurilor, transferul unor astfel de parametri este o formalitate pură, în schimb li se pot atribui valori implicite specifice și le pot fi utilizate. În diferite limbi de programare, această idee este implementată ca parametri ai unei funcții cu valori implicite. Să analizăm mai întâi un exemplu ilustrativ.

folosind namespace std;

rădăcină dublă (dublu x, nesemnată int n = 2)

dacă (n == 2) returnează sqrt (x);

cout<

În exemplul de mai sus, funcția de extragere a unei rădăcini dintr-un număr calculează corect rădăcinile numai pentru numere pozitive. Desigur, nu va fi dificil să o finalizați cu o funcție matematică deplină, care, de exemplu, poate extrage rădăcinile unor grade ciudate de la numere negative și, de asemenea, rădăcina oricărei grade naturale de la zero.

Totuși, aici ar trebui să fim atenți la altul: al doilea parametru al funcției este implicit la 2. Acest lucru este evident din descrierea funcției: după numele parametrului există o valoare "=" și o valoare implicită. Prin urmare, această funcție poate trimite unul sau doi parametri în timpul apelului, ceea ce este demonstrat în funcția principală. Nu va fi o greșeală să numim funcția ca rădăcină (4,2), și aceasta într-o anumită măsură promovează transparența codului. Pe de altă parte, dacă funcția are o duzină de parametri, dintre care jumătate aproape întotdeauna au aceleași valori, atunci puteți reduce semnificativ codul, oferindu-le valori implicite.







Să observăm câteva situații în care este logic să folosiți această abordare (și aceasta este implementată în funcțiile sistemului):

· Citirea unui șir de caractere din consola. Delimitatorul natural este caracterul liniei noi, prin urmare, în mod prestabilit, parametrul corespunzător are valoarea '\ n'. Dacă doriți, puteți specifica un alt delimiter de caractere.

· Rezultatul textului tabelar (în mai multe coloane de lățime egală). Coloanele sunt de obicei separate prin spații, dar puteți utiliza un alt caracter delimitator.

Când utilizați parametrii funcției cu valori implicite, trebuie respectate următoarele reguli:

1. Dacă există parametri care nu au valori implicite, acestea trebuie plasate la începutul listei de parametri. Parametrii cu valori implicite le urmează.

2. Ar trebui să fie foarte atent să se dezvolte funcții supraîncărcate cu parametrii care au valori implicite. De exemplu, compilatorul permite suprasarcina funcției după cum urmează:
int (int x, int y = 1)
retur x * y;
>
int f (int a) retur 2 * a;
>
Încercarea de a apela o astfel de funcție cu operatorul f (3) duce la o eroare de compilare, deoarece este imposibil să se determine ce a însemnat programatorul prin acest apel.

3. Parametrii cu valori implicite trebuie să fie simple tipuri: numeric, boolean, pointeri (în special, șiruri de caractere ca indicii pentru tablouri de simboluri). Arramentele și structurile nu pot avea valori implicite.

Exemplu de calcul al zonei unei cifre (sub graficul de funcții)

Parametrii funcției cu valorile implicite sunt Studopedia

Găsiți zona figurului delimitată de liniile x = a,

x = b, y = 0, y = f (x). Zona f. este considerată egală cu suma zonelor

N trapez. Înălțimea trapezului este H = (b-a) / N.

S = H * (f (a) + f (a + H) + f (a + H) + f (a +

folosind namespace std;

dublu MyS (dublu, dublu, nesemnat = 1000000);







Articole similare

Trimiteți-le prietenilor: