I denne vejledning lærer vi om C ++ - funktionen og funktionsudtryk ved hjælp af eksempler.
En funktion er en blok af kode, der udfører en bestemt opgave.
Antag, at vi har brug for at oprette et program for at oprette en cirkel og farve det. Vi kan oprette to funktioner til at løse dette problem:
- en funktion til at tegne cirklen
- en funktion til at farve cirklen
At opdele et komplekst problem i mindre bidder gør vores program let at forstå og genanvendeligt.
Der er to typer funktioner:
- Standardbiblioteksfunktioner: Foruddefineret i C ++
- Brugerdefineret funktion: Oprettet af brugere
I denne vejledning vil vi mest fokusere på brugerdefinerede funktioner.
C ++ Brugerdefineret funktion
C ++ giver programmøren mulighed for at definere deres egen funktion.
En brugerdefineret funktion grupperer kode for at udføre en bestemt opgave, og den gruppe kode får et navn (identifikator).
Når funktionen påberåbes fra en hvilken som helst del af programmet, udfører det hele de koder, der er defineret i funktionens hoveddel.
C ++ Funktionserklæring
Syntaksen for at erklære en funktion er:
returnType functionName (parameter1, parameter2,… ) ( // function body )
Her er et eksempel på en funktionserklæring.
// function declaration void greet() ( cout << "Hello World"; )
Her,
- funktionens navn er
greet()
- funktionens returtype er
void
- de tomme parenteser betyder, at den ikke har nogen parametre
- funktionslegemet er skrevet indeni
()
Bemærk: Vi lærer om returnType
og parameters
senere i denne vejledning.
Opkald til en funktion
I ovenstående program har vi erklæret en funktion navngivet greet()
. For at bruge greet()
funktionen skal vi kalde den.
Sådan kan vi kalde ovenstående greet()
funktion.
int main() ( // calling a function greet(); )
![](https://cdn.wiki-base.com/4717969/c_function_with_examples.png.webp)
Eksempel 1: Vis en tekst
#include using namespace std; // declaring a function void greet() ( cout << "Hello there!"; ) int main() ( // calling the function greet(); return 0; )
Produktion
Hej med dig!
Funktionsparametre
Som nævnt ovenfor kan en funktion erklæres med parametre (argumenter). En parameter er en værdi, der overføres, når en funktion erklæres.
Lad os for eksempel overveje nedenstående funktion:
void printNum(int num) ( cout << num; )
Her er int
variablen num funktionsparameteren.
Vi sender en værdi til funktionsparameteren, mens vi kalder funktionen.
int main() ( int n = 7; // calling the function // n is passed to the function as argument printNum(n); return 0; )
Eksempel 2: Funktion med parametre
// program to print a text #include using namespace std; // display a number void displayNum(int n1, float n2) ( cout << "The int number is " << n1; cout << "The double number is " << n2; ) int main() ( int num1 = 5; double num2 = 5.5; // calling the function displayNum(num1, num2); return 0; )
Produktion
Int-tallet er 5 Det dobbelte tal er 5,5
I ovenstående program har vi brugt en funktion, der har en int
parameter og en double
parameter.
Vi sender derefter num1 og num2 som argumenter. Disse værdier lagres af henholdsvis funktionsparametrene n1 og n2.
![](https://cdn.wiki-base.com/4717969/c_function_with_examples_2.png.webp)
Bemærk: Typen af argumenter, der er sendt, mens funktionen kaldes til, skal matche de tilsvarende parametre, der er defineret i funktionserklæringen.
Returerklæring
I ovenstående programmer har vi brugt ugyldighed i funktionserklæringen. For eksempel,
void displayNumber() ( // code )
Dette betyder, at funktionen ikke returnerer nogen værdi.
Det er også muligt at returnere en værdi fra en funktion. Til dette skal vi specificere returnType
funktionen under funktionserklæringen.
Derefter kan return
udsagnet bruges til at returnere en værdi fra en funktion.
For eksempel,
int add (int a, int b) ( return (a + b); )
Her har vi datatypen i int
stedet for void
. Dette betyder, at funktionen returnerer en int
værdi.
Koden return (a + b);
returnerer summen af de to parametre som funktionsværdien.
Den return
erklæring angiver, at funktionen er afsluttet. Enhver kode efter return
inde i funktionen udføres ikke.
Eksempel 3: Tilføj to numre
// program to add two numbers using a function #include using namespace std; // declaring a function int add(int a, int b) ( return (a + b); ) int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; )
Produktion
100 + 78 = 178
I ovenstående program add()
bruges funktionen til at finde summen af to tal.
Vi passerer to int
bogstaver 100
og 78
mens vi kalder funktionen.
Vi gemmer den returnerede værdi af funktionen i den variable sum og udskriver den derefter.
![](https://cdn.wiki-base.com/4717969/c_function_with_examples_3.png.webp)
Bemærk, at summen er en variabel af int
typen. Dette skyldes, at returværdien af add()
er af int
typen.
Funktionsprototype
In C++, the code of function declaration should be before the function call. However, if we want to define a function after the function call, we need to use the function prototype. For example,
// function prototype void add(int, int); int main() ( // calling the function before declaration. add(5, 3); return 0; ) // function definition void add(int a, int b) ( cout << (a + b); )
In the above code, the function prototype is:
void add(int, int);
This provides the compiler with information about the function name and its parameters. That's why we can use the code to call a function before the function has been defined.
The syntax of a function prototype is:
returnType functionName(dataType1, dataType2,… );
Example 4: C++ Function Prototype
// using function definition after main() function // function prototype is declared before main() #include using namespace std; // function prototype int add(int, int); int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; ) // function definition int add(int a, int b) ( return (a + b); )
Output
100 + 78 = 178
The above program is nearly identical to Example 3. The only difference is that here, the function is defined after the function call.
That's why we have used a function prototype in this example.
Benefits of Using User-Defined Functions
- Functions make the code reusable. We can declare them once and use them multiple times.
- Functions make the program easier as each small task is divided into a function.
- Functions increase readability.
C++ Library Functions
Library functions are the built-in functions in C++ programming.
Programmers can use library functions by invoking the functions directly; they don't need to write the functions themselves.
Some common library functions in C++ are sqrt()
, abs()
, isdigit()
, etc.
In order to use library functions, we usually need to include the header file in which these library functions are defined.
For instance, in order to use mathematical functions such as sqrt()
and abs()
, we need to include the header file cmath
.
Example 5: C++ Program to Find the Square Root of a Number
#include #include using namespace std; int main() ( double number, squareRoot; number = 25.0; // sqrt() is a library function to calculate the square root squareRoot = sqrt(number); cout << "Square root of " << number << " = " << squareRoot; return 0; )
Output
Kvadratrod af 25 = 5
I dette program sqrt()
bruges biblioteksfunktionen til at beregne kvadratroden af et tal.
Funktionserklæringen for sqrt()
er defineret i cmath
headerfilen. Derfor er vi nødt til at bruge koden #include
til at bruge sqrt()
funktionen.
For at lære mere, besøg C ++ Standardbiblioteksfunktioner.