I den här handledningen lär vi oss om C ++ - funktionen och funktionsuttryck med hjälp av exempel.
En funktion är ett kodblock som utför en specifik uppgift.
Antag att vi måste skapa ett program för att skapa en cirkel och färga den. Vi kan skapa två funktioner för att lösa detta problem:
- en funktion för att rita cirkeln
- en funktion för att färga cirkeln
Att dela upp ett komplext problem i mindre bitar gör vårt program lätt att förstå och återanvändas.
Det finns två typer av funktioner:
- Standardbiblioteksfunktioner: Fördefinierad i C ++
- Användardefinierad funktion: Skapad av användare
I denna handledning fokuserar vi mest på användardefinierade funktioner.
C ++ Användardefinierad funktion
C ++ låter programmeraren definiera sin egen funktion.
En användardefinierad funktionsgruppskod för att utföra en specifik uppgift och den grupp av kod får ett namn (identifierare).
När funktionen anropas från någon del av programmet körs alla de koder som definierats i funktionens kropp.
C ++ Funktionsdeklaration
Syntaxen för att deklarera en funktion är:
returnType functionName (parameter1, parameter2,… ) ( // function body )
Här är ett exempel på en funktionsdeklaration.
// function declaration void greet() ( cout << "Hello World"; )
Här,
- namnet på funktionen är
greet()
- funktionens returtyp är
void
- de tomma parenteserna betyder att det inte har några parametrar
- funktionskroppen är skriven inuti
()
Obs! Vi kommer att lära oss mer om returnType
och parameters
senare i denna handledning.
Ringa en funktion
I ovanstående program har vi förklarat en funktion som heter greet()
. För att använda greet()
funktionen måste vi kalla den.
Så här kan vi kalla greet()
funktionen ovan .
int main() ( // calling a function greet(); )
Hur funktion fungerar i C ++
Exempel 1: Visa en text
#include using namespace std; // declaring a function void greet() ( cout << "Hello there!"; ) int main() ( // calling the function greet(); return 0; )
Produktion
Hej där!
Funktionsparametrar
Som nämnts ovan kan en funktion deklareras med parametrar (argument). En parameter är ett värde som skickas när en funktion deklareras.
Låt oss till exempel överväga funktionen nedan:
void printNum(int num) ( cout << num; )
Här är int
variabeln num funktionsparametern.
Vi skickar ett värde till funktionsparametern när vi anropar funktionen.
int main() ( int n = 7; // calling the function // n is passed to the function as argument printNum(n); return 0; )
Exempel 2: Funktion med parametrar
// 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
Intalet är 5 Det dubbla numret är 5,5
I ovanstående program har vi använt en funktion som har en int
parameter och en double
parameter.
Vi skickar sedan num1 och num2 som argument. Dessa värden lagras av funktionsparametrarna n1 respektive n2.
C ++ - funktion med parametrarObs! Typen av argument som skickats när funktionen anropas måste matcha motsvarande parametrar som definierats i funktionsdeklarationen.
Returuttalande
I ovanstående program har vi använt tomrum i funktionsdeklarationen. Till exempel,
void displayNumber() ( // code )
Detta innebär att funktionen inte returnerar något värde.
Det är också möjligt att returnera ett värde från en funktion. För detta måste vi specificera returnType
funktionen under funktionsdeklarationen.
Då kan return
uttalandet användas för att returnera ett värde från en funktion.
Till exempel,
int add (int a, int b) ( return (a + b); )
Här har vi datatypen int
istället för void
. Detta innebär att funktionen returnerar ett int
värde.
Koden return (a + b);
returnerar summan av de två parametrarna som funktionsvärde.
Det return
uttalandet anger att funktionen har upphört. Någon kod efter return
inuti funktionen körs inte.
Exempel 3: Lägg till två nummer
// 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 ovanstående program används add()
funktionen för att hitta summan av två siffror.
Vi passerar två int
bokstäver 100
och 78
samtidigt ringer funktionen.
Vi lagrar funktionens returnerade värde i den variabla summan och skriver sedan ut den.
Arbeta med C ++ - funktion med returuttalandeLägg märke till att summan är en variabel av int
typen. Detta beror på att returvärdet add()
är av int
typ.
Funktionsprototyp
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
Kvadratrot av 25 = 5
I detta program används sqrt()
biblioteksfunktionen för att beräkna kvadratroten av ett tal.
Funktionsdeklarationen för sqrt()
definieras i cmath
rubrikfilen. Därför måste vi använda koden för #include
att använda sqrt()
funktionen.
Mer information finns i C ++ Standardbiblioteksfunktioner.