C++ Funcții cu exemple de programe

⚡ Rezumat inteligent

Functioneaza in C++ Grupează instrucțiunile corelate în blocuri denumite reutilizabile care preiau date de intrare, le procesează și returnează date de ieșire. Programele combină funcții de bibliotecă încorporate și funcții definite de utilizator, fiecare declarată, definită și apelată pentru a evita repetarea codului.

  • 🧩 Ce este: O funcție grupează instrucțiuni care primesc parametri, îi procesează și returnează o valoare, executând o sarcină comună dintr-un singur bloc.
  • 📚 Funcții încorporate: C++ Biblioteca standard conține funcții predefinite, cum ar fi sqrt(), pe care le apelați direct fără a le scrie.
  • 🛠️ Funcții definite de utilizator: Programatorii își creează propriile funcții, le denumesc în mod unic și invocă codul respectiv de oriunde din program.
  • 📝 Declarație și definiție: Un prototip declară tipul returnat, numele și tipurile de argumente; definiția furnizează corpul funcției.
  • 📞 Apel și argumente: Apelarea unei funcții rulează corpul acesteia; argumentele trebuie să corespundă parametrilor ca număr și tip, iar valorile implicite sunt permise.
  • 🤖 Asistență AI: GitHub Copilot și asistenți similari de tip schelă C++ semnături de funcții, corpuri și apeluri dintr-un comentariu scurt.

C++ funcţii

În ce este o funcție C++?

O funcție în C++ se referă la un grup de instrucțiuni care preia intrare, o procesează și returnează o ieșire. Ideea din spatele unei funcții este de a combina sarcini comune care sunt efectuate în mod repetat. Dacă aveți intrări diferite, nu veți mai scrie același cod. Pur și simplu veți apela funcția cu un set diferit de date numit parametri.

Fiecare C++ programul are cel puțin o funcție, funcția main(). Puteți împărți codul în diferite funcții. Această împărțire ar trebui să fie astfel încât fiecare funcție să îndeplinească o sarcină specifică.

Există multe funcții încorporate în C++ bibliotecă standard. Puteți apela aceste funcții în cadrul programului dvs.

De ce să folosiți funcții?

Există numeroase beneficii asociate cu utilizarea funcțiilor. Acestea includ:

  • Fiecare funcție reunește codul asociat. Acest lucru face ca programatorii să înțeleagă mai ușor codul.
  • Funcțiile facilitează programarea eliminând repetarea codului.
  • Funcțiile facilitează reutilizarea codului. Puteți apela aceeași funcție pentru a efectua o sarcină în diferite secțiuni ale programului sau chiar în afara programului.

Funcții încorporate

In C++, funcțiile bibliotecii sunt încorporate C++ funcții. Pentru a utiliza aceste funcții, pur și simplu le invocați/apelați direct. Nu trebuie să scrieți singur funcțiile.

Exemplu 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

ieșire:

Ieșire a C++ exemplu de funcție sqrt() încorporată

Iată o captură de ecran a codului:

C++ cod care apelează funcția sqrt() încorporată din cmath

Code Explicaţie:

  1. Includeți fișierul antet iostream în programul nostru pentru a utiliza funcțiile acestuia.
  2. Includeți biblioteca cmath pentru a-i folosi funcțiile. Vrem să folosim funcția sqrt() definită în ea.
  3. Includeți spațiul de nume std în codul nostru pentru a-i folosi clasele fără a-l apela.
  4. Apelați funcția main(). Logica programului ar trebui adăugată în corpul acestei funcții.
  5. Declarați două variabile duble, num și squareRoot.
  6. Imprimați ceva text pe consolă. Textul cere utilizatorului să introducă un număr.
  7. Citiți intrarea utilizatorului de la tastatură. Intrarea va deveni valoarea variabilei num.
  8. Apelați funcția de bibliotecă sqrt(), care calculează rădăcina pătrată a unui număr. Am transmis parametrul num funcției, adică va calcula rădăcina pătrată a lui num. Această funcție este definită în biblioteca cmath.
  9. Tipăriți numărul introdus de utilizator, rădăcina pătrată a acestuia și un alt text pe consolă.
  10. Programul trebuie să returneze valoare după finalizarea cu succes.
  11. Sfârșitul corpului funcției main().

Funcții definite de utilizator

C++ permite programatorilor să-și definească propriile funcții. Scopul funcției este de a grupa codul asociat. Codul primește apoi un identificator unic, numele funcției.

Funcția poate fi apelată/invocată din orice altă parte a programului. Apoi va executa codul definit în corpul său.

Exemplu 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

ieșire:

Ieșire a C++ funcția sayHello() definită de utilizator

Iată o captură de ecran a codului:

C++ definirea codului și apelarea unei funcții definite de utilizator

Code Explicaţie:

  1. Includeți fișierul antet iostream în programul nostru pentru a utiliza funcțiile acestuia.
  2. Includeți spațiul de nume std în codul nostru pentru a-i folosi clasele fără a-l apela.
  3. Creați o funcție definită de utilizator numită sayHello().
  4. Tipăriți ceva text pe consolă când este apelată funcția sayHello().
  5. Sfârșitul corpului funcției sayHello().
  6. Apelați funcția main(). Logica programului ar trebui adăugată în corpul acestei funcții.
  7. Apelați/invocați funcția numită sayHello().
  8. Programul trebuie să returneze valoare după finalizarea cu succes.
  9. Sfârșitul corpului funcției main().

Compilatorul trebuie să cunoască o funcție înainte de a fi utilizată.

Declarație de funcție/Prototip

Dacă definiți o funcție definită de utilizator după funcția main(), C++ compilator va returna o eroare. Motivul este că compilatorul nu cunoaște detaliile funcției definite de utilizator. Detaliile includ numele acestuia, tipurile de argumente și tipurile de returnare ale acestora.

In C++, declarația funcției/prototipul declară o funcție fără corp. Aceasta oferă compilatorului detalii despre funcția definită de utilizator.

În declarație/prototip, includem tipul returnat, numele funcției și tipurile de argumente. Numele argumentelor nu sunt adăugate. Cu toate acestea, adăugarea numelor de argument nu generează nicio eroare.

C++ diagrama sintaxei de declarare a funcțiilor/prototipului

Definiția funcției

Scopul declarației funcției este de a spune C++ compilator despre numele funcției, tipul returnat și parametri. O definiție a funcției spune C++ compilator despre corpul funcției.

C++ diagrama structurii definiției funcției

Sintaxă

return_datatype function_name( parameters) {
   function body 
}

Din cele de mai sus, o definiție a funcției are antetul și corpul funcției. Iată o explicație a parametrilor:

  • return_datatype - Unele funcții returnează o valoare. Acest parametru indică tipul de date al valorii returnate. Unele funcții nu returnează valoare. În acest caz, valoarea acestui parametru devine void.
  • function_name- Acesta este numele functiei. Numele și parametrii funcției formează semnătura funcției.
  • Parametri - Acesta este tipul, ordinea și numărul parametrilor funcției. Unele funcții nu au parametri.
  • Corpul funcției - acestea sunt declarații care definesc ce va face funcția.

Apel de funcție

Pentru ca o funcție să realizeze sarcina specificată și să returneze rezultatul, aceasta trebuie apelată. Când apelați o funcție, aceasta execută instrucțiunile adăugate în corpul acesteia.

O funcție este apelată după numele său. Dacă funcția acceptă parametri, valorile acestora trebuie transmise în timpul apelului. Dacă funcția nu acceptă parametri, nu transmiteți nicio valoare în timpul apelului.

C++ diagrama sintaxei apelului de funcție

Argumente de trecere

In C++, un argument/parametru sunt datele transmise unei funcții în timpul apelului acesteia. Valorile trebuie inițializate la variabilele lor respective.

Când apelați o funcție, argumentele trebuie să corespundă ca număr. Aceasta înseamnă că valorile transmise trebuie să fie egale cu numărul de parametri. Din nou, valorile trebuie să corespundă și parametrilor în ceea ce privește tipul. Dacă primul parametru este un număr întreg, valoarea transmisă acestuia trebuie să fie un număr întreg.

Se pot atribui valori implicite parametrilor funcției. Dacă nu transmiteți o valoare pentru parametru în timpul apelului funcției, va fi utilizată valoarea implicită.

Exemplul 3: Cum să scrieți și să apelați o funcție

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

ieșire:

Ieșire a C++ Funcția addFunc() care returnează o sumă

Iată o captură de ecran a codului:

C++ transmiterea argumentelor de cod către funcția addFunc()

Code Explicaţie:

  1. Includeți fișierul antet iostream în programul nostru pentru a utiliza funcțiile acestuia.
  2. Includeți spațiul de nume std în codul nostru pentru a-i folosi clasele fără a-l apela.
  3. Declarați o funcție numită addFunc() care ia doi parametri întregi. Aceasta creează prototipul funcției.
  4. Apelați funcția main(). Logica programului ar trebui adăugată în corpul acestei funcții.
  5. Declarați trei variabile întregi, x, y și sumă.
  6. Tipăriți ceva text pe consolă. Textul cere utilizatorului să introducă două numere.
  7. Citiți intrarea utilizatorului de la tastatură. Utilizatorul trebuie să introducă două numere pentru variabilele x și y, separate prin spațiu.
  8. Apelați funcția addFunc() și transmiteți-i parametrii x și y. Funcția va funcționa pe acești parametri și va atribui rezultatul sumei variabile.
  9. Tipăriți valorile variabilelor x, y și suma pe consolă alături de alt text.
  10. Funcția trebuie să returneze valoarea după finalizarea cu succes.
  11. Sfârșitul corpului funcției main().
  12. Definirea functiei. Definim funcția addFunc(). Vom preciza ce va face funcția în corpul său, { }.
  13. Declararea unei variabile întregi numită addFunc.
  14. Adăugarea valorilor parametrilor num1 și num2 și atribuirea rezultatului variabilei addFunc.
  15. Funcția addFunc() ar trebui să returneze valoarea variabilei addFunc.
  16. Sfârșitul corpului funcției, adică definiția funcției.

Întrebări frecvente

Apelul prin valoare copiază argumentul, astfel încât modificările din interiorul funcției nu afectează originalul. Apelul prin referință transmite variabila cu un ampersand, permițând funcției să modifice direct valoarea apelantului. C++ implicit este apelat după valoare.

Supraîncărcarea funcțiilor permite mai multor funcții să aibă același nume, dar să difere în ceea ce privește numărul sau tipul parametrilor lor. Compilatorul alege versiunea corectă dintre argumentele pe care le transmiteți, îmbunătățind lizibilitatea pentru operațiunile corelate.

O funcție inline solicită compilatorului să își insereze corpul la fiecare locație de apel în loc să efectueze un apel normal. Acest lucru poate reduce costurile pentru funcțiile mici, deși compilatorul poate ignora sugestia.

O funcție recursivă se apelează pe sine, împarțind o problemă în subprobleme mai mici. Are nevoie de un caz de bază care oprește recursivitatea; altfel apelurile se repetă la nesfârșit și depășesc stiva. Factorial este un exemplu clasic.

Transmiteți parametrul ca pointer sau matrice dimensionată și, de obicei, trimiteți lungimea sa separat, deoarece matricea se transformă într-un pointer. Vedeți transmiterea matrice în C++ funcții pentru exemple complete lucrate.

O funcție returnează o valoare direct, dar puteți returna mai multe folosind parametri de referință de ieșire, o structură, o pereche std::pair, un tuplu std:: sau un std::vector. Legăturile structurate despachetează apoi tuplul returnat la locul apelului.

Da. Asistenții de codare cu inteligență artificială transformă un comentariu în limbaj simplu într-un comentariu complet. C++ funcție, sugerând semnătura, corpul și tipul de returnare. De asemenea, refactorizează funcții lungi, deși ar trebui să revizuiți logica generată.

Copilotul GitHub completări automate C++ definiții de funcții, prototipuri și apeluri din comentariile sau numele dvs., propune supraîncărcări și elaborează teste unitare. Folosește anteturi referențiate pentru context, dar fiecare sugestie trebuie totuși revizuită.

Rezumați această postare cu: