C ++ functie (met voorbeelden)

In deze tutorial leren we met behulp van voorbeelden over de C ++ -functie en functie-expressies.

Een functie is een codeblok dat een specifieke taak uitvoert.

Stel dat we een programma moeten maken om een ​​cirkel te maken en deze te kleuren. We kunnen twee functies maken om dit probleem op te lossen:

  • een functie om de cirkel te tekenen
  • een functie om de cirkel te kleuren

Door een complex probleem op te delen in kleinere stukjes, is ons programma gemakkelijk te begrijpen en herbruikbaar.

Er zijn twee soorten functies:

  1. Standaard bibliotheekfuncties: vooraf gedefinieerd in C ++
  2. Door gebruiker gedefinieerde functie: gemaakt door gebruikers

In deze tutorial zullen we ons voornamelijk concentreren op door de gebruiker gedefinieerde functies.

C ++ Door de gebruiker gedefinieerde functie

Met C ++ kan de programmeur zijn eigen functie definiëren.

Een door de gebruiker gedefinieerde functie groepeert code om een ​​specifieke taak uit te voeren en die groep code krijgt een naam (identifier).

Wanneer de functie wordt aangeroepen vanuit een deel van het programma, voert het allemaal de codes uit die zijn gedefinieerd in de hoofdtekst van de functie.

C ++ Functie-verklaring

De syntaxis om een ​​functie te declareren is:

 returnType functionName (parameter1, parameter2,… ) ( // function body )

Hier is een voorbeeld van een functieverklaring.

 // function declaration void greet() ( cout << "Hello World"; )

Hier,

  • de naam van de functie is greet()
  • het retourtype van de functie is void
  • de lege haakjes betekenen dat het geen parameters heeft
  • de functie body is binnen geschreven ()

Opmerking: we zullen meer leren over returnTypeen parameterslater in deze tutorial.

Een functie aanroepen

In het bovenstaande programma hebben we een functie gedeclareerd met de naam greet(). Om de greet()functie te gebruiken , moeten we deze aanroepen.

Hier is hoe we de bovenstaande greet()functie kunnen noemen .

 int main() ( // calling a function greet(); )
Hoe functie werkt in C ++

Voorbeeld 1: geef een tekst weer

 #include using namespace std; // declaring a function void greet() ( cout << "Hello there!"; ) int main() ( // calling the function greet(); return 0; )

Uitvoer

 Hallo daar!

Functieparameters

Zoals hierboven vermeld, kan een functie worden gedeclareerd met parameters (argumenten). Een parameter is een waarde die wordt doorgegeven bij het declareren van een functie.

Laten we bijvoorbeeld eens kijken naar de onderstaande functie:

 void printNum(int num) ( cout << num; )

Hier is de intvariabele num de functieparameter.

We geven een waarde door aan de functieparameter terwijl we de functie aanroepen.

 int main() ( int n = 7; // calling the function // n is passed to the function as argument printNum(n); return 0; )

Voorbeeld 2: functie met parameters

 // 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; )

Uitvoer

 Het int-nummer is 5 Het dubbele nummer is 5,5

In het bovenstaande programma hebben we een functie gebruikt die één intparameter en één doubleparameter heeft.

We geven dan num1 en num2 door als argumenten. Deze waarden worden opgeslagen door respectievelijk de functieparameters n1 en n2.

C ++ functie met parameters

Opmerking: het type argumenten dat wordt doorgegeven tijdens het aanroepen van de functie, moet overeenkomen met de corresponderende parameters die zijn gedefinieerd in de functiedeclaratie.

Retourverklaring

In de bovenstaande programma's hebben we void gebruikt in de functieverklaring. Bijvoorbeeld,

 void displayNumber() ( // code )

Dit betekent dat de functie geen waarde retourneert.

Het is ook mogelijk om een ​​waarde van een functie te retourneren. Hiervoor moeten we de returnTypevan de functie specificeren tijdens functiedeclaratie.

Vervolgens kan de returninstructie worden gebruikt om een ​​waarde van een functie te retourneren.

Bijvoorbeeld,

 int add (int a, int b) ( return (a + b); )

Hier hebben we het gegevenstype in intplaats van void. Dit betekent dat de functie een intwaarde retourneert .

De code return (a + b);retourneert de som van de twee parameters als functiewaarde.

De returninstructie geeft aan dat de functie is beëindigd. Elke code na returnbinnen de functie wordt niet uitgevoerd.

Voorbeeld 3: voeg twee cijfers toe

 // 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; )

Uitvoer

 100 + 78 = 178

In het bovenstaande programma wordt de add()functie gebruikt om de som van twee getallen te vinden.

We passeren twee intletterlijke tekens 100en 78tijdens het aanroepen van de functie.

We slaan de geretourneerde waarde van de functie op in de variabele som, en dan drukken we deze af.

Werken met C ++ Functie met retourinstructie

Merk op dat som een inttype variabele is. Dit komt doordat de retourwaarde add()van het inttype is.

Functieprototype

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

 Vierkantswortel van 25 = 5

In dit programma wordt de sqrt()bibliotheekfunctie gebruikt om de vierkantswortel van een getal te berekenen.

De functieverklaring van sqrt()is gedefinieerd in het cmathheaderbestand. Daarom moeten we de code #include gebruiken om de sqrt()functie te gebruiken .

Ga voor meer informatie naar C ++ Standard Library-functies.

Interessante artikelen...