C++ Funktioner med programeksempler

Hvad er en funktion i C++?

A funktion in C++ refererer til en gruppe af udsagn, der tager input, behandler det og returnerer et output. Ideen bag en funktion er at kombinere almindelige opgaver, der udfรธres gentagne gange. Hvis du har forskellige indgange, vil du ikke skrive den samme kode igen. Du vil blot kalde funktionen med et andet sรฆt data kaldet parametre.

Hver C++ programmet har mindst รฉn funktion, main()-funktionen. Du kan opdele din kode i forskellige funktioner. Denne opdeling skal vรฆre sรฅdan, at hver funktion udfรธrer en bestemt opgave.

Der er mange indbyggede funktioner i C++ standard bibliotek. Du kan kalde disse funktioner i dit program.

Hvorfor bruge funktioner?

Der er mange fordele forbundet med brugen af โ€‹โ€‹funktioner. Disse omfatter:

  • Hver funktion sรฆtter relateret kode sammen. Dette gรธr det lettere for programmรธrer at forstรฅ kode.
  • Funktioner gรธr programmering lettere ved at eliminere kodegentagelse.
  • Funktioner letter genbrug af kode. Du kan kalde den samme funktion for at udfรธre en opgave i forskellige sektioner af programmet eller endda uden for programmet.

Indbyggede funktioner

In C++ biblioteksfunktioner er indbygget C++ funktioner. For at bruge disse funktioner skal du blot pรฅkalde/kalde dem direkte. Du skal ikke selv skrive funktionerne.

Eksempel 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;
}

Output:

Indbyggede funktioner

Her er et skรฆrmbillede af koden:

Indbyggede funktioner

Code Forklaring:

  1. Inkluder iostream-headerfilen i vores program for at bruge dens funktioner.
  2. Inkluder cmath-biblioteket for at bruge dets funktioner. Vi รธnsker at bruge funktionen sqrt() defineret i den.
  3. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  4. Kald funktionen main(). Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  5. Deklarer to dobbeltvariable, num og kvadratrod.
  6. Udskriv noget tekst pรฅ konsollen. Teksten beder brugeren om at indtaste et tal.
  7. Lรฆs brugerinput fra tastaturet. Indtastningen bliver vรฆrdien af โ€‹โ€‹variabel num.
  8. Kald biblioteksfunktionen sqrt(), som beregner kvadratroden af โ€‹โ€‹et tal. Vi sendte parameteren num til funktionen, hvilket betyder, at den vil beregne kvadratroden af โ€‹โ€‹num. Denne funktion er defineret i cmath-biblioteket.
  9. Udskriv nummeret indtastet af brugeren, dets kvadratrod og noget anden tekst pรฅ konsollen.
  10. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  11. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

Brugerdefinerede funktioner

C++ giver programmรธrer mulighed for at definere deres egne funktioner. Formรฅlet med funktionen er at gruppere relateret kode. Koden fรฅr derefter en unik identifikator, funktionsnavnet.

Funktionen kan kaldes/kaldes fra enhver anden del af programmet. Det vil derefter udfรธre den kode, der er defineret i sin krop.

Eksempel 2:

#include <iostream>
using namespace std;

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

int main() {

	sayHello();

	return 0;
}

Output:

Brugerdefinerede funktioner

Her er et skรฆrmbillede af koden:

Brugerdefinerede funktioner

Code Forklaring:

  1. Inkluder iostream-headerfilen i vores program for at bruge dens funktioner.
  2. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  3. Opret en brugerdefineret funktion ved navn sayHello().
  4. Udskriv noget tekst pรฅ konsollen, nรฅr funktionen sayHello() kaldes.
  5. Slutningen af โ€‹โ€‹brรธdteksten af โ€‹โ€‹sayHello()-funktionen.
  6. Kald funktionen main(). Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  7. Kald/kald funktionen ved navn sayHello().
  8. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  9. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

Funktionserklรฆring/prototype

Hvis du definerer en brugerdefineret funktion efter funktionen main(), vil den C++ compiler vil returnere en fejl. ร…rsagen er, at compileren ikke kender detaljerne i den brugerdefinerede funktion. Detaljerne omfatter dets navn, typerne af argumenter og deres returtyper.

In C++, erklรฆrer funktionserklรฆringen/prototypen en funktion uden krop. Dette giver compileren detaljer om den brugerdefinerede funktion.

Funktionserklรฆring/prototype

I erklรฆringen/prototypen inkluderer vi returtypen, funktionsnavnet og argumenttyper. Navnene pรฅ argumenter tilfรธjes ikke. Tilfรธjelse af argumentnavne genererer dog ingen fejl.

Funktionsdefinition

Formรฅlet med funktionserklรฆringen er at fortรฆlle C++ compiler om funktionsnavnet, returtypen og parametre. En funktionsdefinition fortรฆller C++ compiler om funktionslegemet.

Funktionsdefinition/prototype

Syntaks

return_datatype function_name( parameters) {
   function body 
}

Fra ovenstรฅende har en funktionsdefinition funktionshovedet og brรธdteksten. Her er en forklaring af parametrene:

  • return_datatype- Nogle funktioner returnerer vรฆrdi. Denne parameter angiver datatypen for returvรฆrdien. Nogle funktioner returnerer ikke vรฆrdi. I sรฅ fald bliver vรฆrdien af โ€‹โ€‹denne parameter ugyldig.
  • funktionsnavn- Dette er navnet pรฅ funktionen. Funktionens navn og parametre danner funktionssignaturen.
  • Parametre- Dette er typen, rรฆkkefรธlgen og antallet af funktionsparametre. Nogle funktioner har ikke parametre.
  • funktionslegeme - disse er udsagn, der definerer, hvad funktionen vil gรธre.

Funktionsopkald

For at en funktion kan udfรธre den angivne opgave og returnere output, skal den kaldes. Nรฅr du kalder en funktion, udfรธrer den de sรฆtninger, der er tilfรธjet i dens krop.

Funktionsopkald

Et program kaldes ved sit navn. Hvis funktionen tager parametre, skal deres vรฆrdier videregives under opkaldet. Hvis tjenesten ikke tager nogen parametre, skal du ikke videregive nogen vรฆrdi under opkaldet.

Bestรฅr argumenter

In C++, et argument/parameter er de data, der sendes til en funktion under dens opkald. Vรฆrdierne skal initialiseres til deres respektive variable.

Nรฅr du kalder en funktion, skal argumenterne matche i antal. Det betyder, at de vรฆrdier, du sender, skal vรฆre lig med antallet af parametre. Igen skal vรฆrdierne ogsรฅ matche parametrene med hensyn til type. Hvis den fรธrste parameter er et heltal, skal den vรฆrdi, der sendes til den, vรฆre et heltal.

Man kan tildele standardvรฆrdier til funktionsparametre. Hvis du ikke sender en vรฆrdi for parameteren under funktionskaldet, vil standardvรฆrdien blive brugt.

Eksempel 3: Hvordan man skriver og kalder en funktion

#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;
}

Output:

Bestรฅr argumenter

Her er et skรฆrmbillede af koden:

Bestรฅr argumenter

Code Forklaring:

  1. Inkluder iostream-headerfilen i vores program for at bruge dens funktioner.
  2. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  3. Erklรฆr en funktion ved navn addFunc(), der tager to heltalsparametre. Dette skaber funktionsprototypen.
  4. Kald funktionen main(). Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  5. Deklarer tre heltalsvariable, x, y og sum.
  6. Udskriv noget tekst pรฅ konsollen. Teksten beder brugeren om at indtaste to tal.
  7. Lรฆs brugerinputtet fra tastaturet. Brugeren skal indtaste to tal for variablene x og y, adskilt af mellemrum.
  8. Kald funktionen addFunc() og overfรธr parametrene x og y til den. Funktionen vil operere pรฅ disse parametre og tildele output til den variable sum.
  9. Udskriv vรฆrdierne af variablerne x, y og sum pรฅ konsollen sammen med anden tekst.
  10. Funktionen skal returnere vรฆrdi efter vellykket afslutning.
  11. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().
  12. Funktionsdefinition. Vi definerer funktionen addFunc(). Vi vil angive, hvad funktionen vil gรธre i dens krop, { }.
  13. Erklรฆring af en heltalsvariabel ved navn addFunc.
  14. Tilfรธjelse af vรฆrdierne af parametrene num1 og num2 og tildeling af resultatet til variabel addFunc.
  15. Funktionen addFunc() skal returnere vรฆrdien af โ€‹โ€‹variabelen addFunc.
  16. Slut pรฅ funktionslegemet, det vil sige funktionsdefinition.

Resumรฉ

  • En funktion i C++ hjรฆlper dig med at gruppere relateret kode i รฉn.
  • Funktioner letter genbrug af kode.
  • I stedet for at skrive lignende kode igen og igen, grupperer du den blot i en funktion. Du kan derefter kalde funktionen fra et hvilket som helst sted i koden.
  • Funktioner kan vรฆre biblioteks- eller brugerdefinerede.
  • Biblioteksfunktioner er de funktioner, der er indbygget forskellige C++ funktioner.
  • For at bruge biblioteksfunktioner inkluderer du blot dets definitionsbibliotek og kalder funktionen. Du definerer ikke funktionen.
  • Brugerdefinerede funktioner er de funktioner, du definerer som en C++ programmรธr.
  • En funktionserklรฆring fortรฆller compileren om funktionsnavnet, returtypen og parametertyperne.
  • En funktionsdefinition tilfรธjer funktionens krop.
  • Hvis en funktion tager parametre, skal deres vรฆrdier videregives under funktionskaldet.

Opsummer dette indlรฆg med: