Funcția întoarce
Funcția întoarce sunt de un tip care se potrivește cu tipul de valoarea de returnare. Aceste funcții returnează o valoare la punctul de inversare de întoarcere. Prin urmare, funcția ar trebui să acționeze ca un operand în expresiile de atribuire sau un terminal. Aceasta distinge sintaxa funcției și nu returnează o valoare returnată. În definiția funcției trebuie să fie întoarcere de instrucțiuni. care ia expresia pentru a determina o valoare returnată. Mai jos este structura programului returnează valoarea funcției.
Funcția programului
declaraţie de returnare
Declarație de returnare se termină funcția și returnează valoarea sa. Declarația de retur returnează doar o singură valoare (variabilă sau expresie). În unele cazuri, o declarație de returnare poate fi utilizată în valoare de returnare nu funcționează (programul de 13.1 p. 23). Dar, în aceste funcții declarație goală de retur este utilizat pentru a părăsi funcția și a reveni controlul programului de asteptare.
Aici este un exemplu al programului cu funcția returnează o valoare.
Compune un program cu o funcție returnează o valoare aleatoare în intervalul [a, b]. Noi o numim myRand (). Această funcție a două variabile pot fi utilizate, de exemplu, pentru a umple o matrice.
programul 14.1
Corpul funcției poate fi de mai multe întoarcere. În acest caz, doar o singură declarație de returnare se va întoarce. Acesta poate fi programat folosind instrucțiuni condiționale. Aici este un exemplu de astfel de program. Având în vedere un număr întreg de două cifre n. În cazul în care acest număr este chiar și pentru a obține produsul de cifre sale, sau pentru a primi suma cifrelor sale.
programul 14.2
Această funcție poate fi determinată, și mai succint, dacă aplicăm operația ternar în loc de instrucțiuni condiționale:
Folosind operatorul ternar în legătură cu declarația de returnare este utilizarea destul de frecventă.
Dacă doriți să reveniți funcția de mai mult de un sens. este necesar să se recurgă la evaluarea parametrilor de referință sau pointer. Să considerăm un exemplu. Elaborarea unui program care utilizează o funcție revenind la nivel de două cifre.
programul 14.3
funcţia supraîncărcării
Supraîncărcarea Funcția permite mai multor funcții cu același nume, dar parametrii diferiți. Fiecare funcție trebuie să aibă un prototip și definiția sa. Apelarea unei anumite funcții supraîncărcat va defini un set de argumente (semnătura). Semnăturile de funcții supraîncărcate trebuie să fie diferite, fie în funcție de tipul sau de numărul de ori și de modul în care, și într-un alt mod. Să considerăm un exemplu simplu. Este necesar pentru a face un program care ia jumătate din produsul argumentului, în cazul în care semnătura celor două argumente și media aritmetică a argumentului, dacă semnătura de trei argumente.
programul 14.4
Supraîncărcarea funcție, așa-numitele funcții polimorfism. Aceasta se aplică în cazul în care un program de mare, există un set de unele funcții care rezolvă același tip de problemă (o clasă de probleme), dar punerea în aplicare a fiecăreia dintre ele necesită unele modificări (de exemplu, utilizarea altor tipuri de date sau care reprezintă rezultatul). Acest lucru permite dezvoltator pentru a reduce numărul de nume de funcții utilizate în program.
Rețineți, de asemenea, că funcțiile supraîncărcate pot returna diferite tipuri de date, cu condiția ca semnăturile acestor funcții vor fi diferite.
template-uri de funcții
template-uri de funcții (șablon funcție) oferă instrumente pentru funcția de proiectare. Șablonul vă permite să scape de un anumit tip de date, care va funcționa. Template - este un ghid pentru a crea un obiect real. Acest lucru înseamnă că șablonul nu creează o caracteristică, și spune compilatorului cum să creați definiția funcției pentru tipul de date corespunzătoare, care va fi, la un moment dat al programului, argumentele funcției create. Tiparele sunt aplicate în cazurile în care același algoritm pentru a fi utilizate pentru diferite tipuri de date.
Definirea unui șablon:
în cazul în care T1. T2 - nume arbitrare de tip șablon parametru. Fiecare parametru de tip trebuie să fie precedată de TYPENAME de cuvinte cheie. Acești parametri sunt utilizați pentru a indica diferitele tipuri de obiecte în antet și în corpul funcției. Compilatorul va conecta acești parametri cu tipul corespunzător de argumente pentru determinarea tipului de parametrii funcției.
Aici este un exemplu al problemei. Scrieți un program în care doriți să compare două obiecte de același tip. Demonstra utilizarea funcției pentru a crea un șablon pentru compararea obiecte de diferite tipuri.
programul 14.5
- Care este diferența funcția întoarce și nu se întoarce?
- În cazul în care funcțiile de suprasarcină vor fi utile, iar în unele cazuri, ar trebui să fie evitată?
- Când se utilizează o funcție de șablon?
- În unele cazuri, aceeași funcție se utilizează două declarații de returnare?
- În unele cazuri, funcția poate fi folosită ca o „logică“?
teme pentru acasă
- Asigurați-o funcție care definește suma cifre introduse întreg.
- Scrieti un program care utilizează o funcție supraîncărcată unfurls numere și cuvinte înapoi în față. De exemplu, 7890 -> 0987. qwerty -> ytrewq.