English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ 函数

在本文中,您将学习有关C ++中函数的所有知识。有哪些类型的函数,如何在示例中使用它们。

在编程中,函数是指将代码分组以执行特定任务的代码块。

取决于函数是预定义的还是由程序员创建的;函数有两种类型:

  1. 标准库函数

  2. Fonction définie par l'utilisateur

标准库函数

库函数是C ++编程中的内置函数。

程序员可以通过直接调用函数来使用库函数;他们不需要自己编写。

Exemple1:库函数

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double number, squareRoot;
    cout << "Entrer un nombre: ";
    cin >> number;
    // sqrt() est une fonction de bibliothèque utilisée pour calculer la racine carrée
    squareRoot = sqrt(number);
    cout << "Nombre " << number << " de la racine carrée = " << squareRoot;
    return 0;
}

Résultat de la sortie

Entrer un nombre: 26
Nombre 26 La racine carrée = 5.09902

Dans cet exemple, la fonction de bibliothèque sqrt() est appelée pour calculer la racine carrée du nombre26de la racine carrée.

Le code d'attention dans le programme ci-dessus #include <cmath> . Ici cmath est un fichier d'en-tête. La fonction sqrt() est définie dans le fichier d'en-tête cmath.

Lorsque vous utilisez #include <cmath> pour inclure le contenu du fichier cmath dans ce programme, vous pouvez utiliser toutes les fonctions définies dans cmath.

Toute fonction valable en C ++Un programme C doit au moins avoir une fonction, c'est-à-dire la fonction main().

Fonction définie par l'utilisateur

C ++Permet aux programmeurs de définir leurs propres fonctions.

Les fonctions définies par l'utilisateur regroupent le code pour exécuter une tâche spécifique et attribuent un nom (identificateur) à ce groupe de code.

Quand on appelle cette fonction à partir de n'importe quelle partie du programme, elles exécutent le code du corps de la fonction défini.

Comment fonctionne une fonction définie par l'utilisateur en programmation C ?

Selon la figure ci-dessus.

Lorsque le programme commence à s'exécuter, le système appelle la fonction main(), c'est-à-dire que le code est exécuté à partir de la fonction main() lorsque le programme commence à s'exécuter.

Lorsque le contrôle du programme atteint function_name() à l'intérieur de main(), il passe à void function_name() et exécute tous les codes à l'intérieur de void function_name().

Ensuite, le contrôle du programme revient à la fonction principale, où, comme indiqué dans la figure, le code après l'appel de function_name() est exécuté.

Exemple2Fonction définie par l'utilisateur

C ++Le programme ajoute deux entiers. Crée une fonction add() pour ajouter des entiers et affiche sum dans la fonction main().

#include <iostream>
using namespace std;
// Prototype de la fonction (déclaration)
int add(int, int);
int main()
{
    int num1, num2, sum
    cout << "Entrer deux nombres à ajouter: ";
    cin >> num1 >> num2;
    // Appel de la fonction
    sum = add(num1, num2);
    cout << "Somme = " << sum;
    return 0;
}
// Définition de la fonction
int add(int a, int b)
{
    int add;
    add = a + b;
    // Retourne l'instruction
    return add;
}

Résultat de la sortie

Entrer deux nombres à ajouter: 8
-4
Somme = 4

Prototype de la fonction (déclaration)

Si la fonction définie par l'utilisateur est définie après le programme principal (main()), le compilateur affichera une erreur. Cela est dû au fait que le compilateur ne connaît pas la fonction définie par l'utilisateur, le type des paramètres passés à la fonction et le type de retour.

Dans C ++Dans C, le prototype de la fonction est la déclaration de la fonction, sans son corps pour fournir des informations au compilateur sur la fonction définie par l'utilisateur. Le prototype de la fonction dans l'exemple suivant est :

int add(int, int);

Vous pouvez voir que dans le prototype, il n'y a pas de corps de la fonction. Et il n'y a que le type de retour des paramètres, sans paramètres. Vous pouvez également déclarer le prototype de la fonction de la manière suivante, mais il n'est pas nécessaire d'écrire les paramètres.

int add(int a, int b);

Attention :Si la fonction définie par l'utilisateur existe avant le programme principal (main()), il n'est pas nécessaire de définir l'prototype.

Appel de la fonction

Pour exécuter le code du corps de la fonction, il est nécessaire d'appeler (appeler) la fonction définie par l'utilisateur.

Dans le programme ci-dessus, add(num1,num2); L'appel interne du programme principal (main()) à la fonction définie par l'utilisateur.

La fonction renvoie un entier, qui est stocké dans la variable variable add.

Définition de la fonction

La fonction elle-même est appelée définition de la fonction. La définition de la fonction dans le programme suivant est :

// Définition de la fonction
int add(int a, int b)
{
    int add;
    add = a + b;
    return add;
}

Lorsque la fonction est appelée, le contrôle est transféré à la première instruction du corps de la fonction.

Ensuite, exécutez les autres instructions du corps de la fonction une après l'autre.

Lorsque tout le code de la définition de la fonction est exécuté, le contrôle du programme se déplace vers le programme appelant.

Transmettre des paramètres à la fonction

Dans la programmation, le paramètre (paramètre) est la données transmises à la fonction (définition de la fonction) lors de l'appel de la fonction.

Dans l'exemple ci-dessus, deux variables num1et num2sont transmis à la fonction pendant l'appel de la fonction. Ces paramètres sont appelés paramètres réels.

num1et num2Les valeurs sont initialisées respectivement par les variables a et b. Ces paramètres a et b sont appelés paramètres formels.

Comme indiqué dans le graphique suivant :

Remarques sur la transmission des paramètres

  • Le nombre des paramètres réels et des paramètres formels doit être le même. (Exception :Surcharge de la fonction)

  • Le type du premier paramètre réel doit correspondre au type du premier paramètre formel. De même, le type du second paramètre réel doit correspondre au type du second paramètre formel, et ainsi de suite.

  • Vous pouvez appeler la fonction a sans transmettre de paramètres. Le nombre de paramètres passés à la fonction dépend de la manière dont le programmeur résout le problème.

  • Vous pouvez attribuer une valeur par défaut aux paramètres. Ces paramètres sont appelésParamètres par défaut.

  • Dans le programme ci-dessus, les deux paramètres sont de type int. Mais il n'est pas nécessaire d'utiliser deux paramètres de type identique en même temps.

Instruction return

La fonction peut renvoyer une valeur unique au programme appelant à l'aide de l'instruction return.

Dans le programme ci-dessus, l'instruction suivante est utilisée pour renvoyer la valeur de add de la fonction définie par l'utilisateur au programme appelant :

return add;

La figure ci-dessous montre le fonctionnement de la instruction return.

Dans le programme ci-dessus, la valeur de la fonction définie par l'utilisateur add est retournée à la fonction appelante. Ensuite, cette valeur est stockée dans une variable sum.

Notez la variable de retour, c'est-à-dire add est de type int, et sum est aussi de type int.

En outre, notez que le type de retour de la fonction est défini avant le déclarateur de fonction int add(int a, int b) dans int, ce qui signifie avant add(int a, int b) que la fonction doit retourner une valeur de type int.

Si aucune valeur n'est retournée à la fonction appelante, il faut utiliser void.