C++ Fonctions avec exemples de programmes

⚡ Résumé intelligent

Fonctions dans C++ Regroupez les instructions liées en blocs nommés réutilisables qui reçoivent une entrée, la traitent et renvoient une sortie. Les programmes combinent des fonctions de bibliothèque intégrées et des fonctions définies par l'utilisateur, chacune déclarée, définie et appelée afin d'éviter la duplication de code.

  • 🧩 Qu'est-ce que c'est: Une fonction regroupe des instructions qui prennent des paramètres, les traitent et renvoient une valeur, exécutant ainsi une tâche commune à partir d'un seul bloc.
  • 📚 Fonctions intégrées : Le C++ La bibliothèque standard fournit des fonctions prêtes à l'emploi telles que sqrt() que vous pouvez appeler directement sans avoir à les écrire.
  • Fonctions définies par l'utilisateur : Les programmeurs créent leurs propres fonctions, leur donnent un nom unique et appellent ce code depuis n'importe quel endroit du programme.
  • 📝 Déclaration et définition : Un prototype déclare le type de retour, le nom et les types d'arguments ; la définition fournit le corps de la fonction.
  • 📞 Appel et arguments : L'appel d'une fonction exécute son corps ; les arguments doivent correspondre aux paramètres en nombre et en type, et les valeurs par défaut sont autorisées.
  • 🤖 Aide à l'IA : GitHub Copilot et les assistants similaires échafaudent C++ Signatures, corps et appels de fonctions à partir d'un court commentaire.

C++ Les fonctions

Qu'est-ce qu'une fonction dans C++?

Une fonction dans C++ fait référence à un groupe d'instructions qui prend une entrée, la traite et renvoie une sortie. L’idée derrière une fonction est de combiner des tâches communes effectuées de manière répétée. Si vous avez des entrées différentes, vous n’écrirez plus le même code. Vous appellerez simplement la fonction avec un ensemble de données différent appelé paramètres.

Chaque projet récompensé par un C++ le programme a au moins une fonction, la fonction main(). Vous pouvez diviser votre code en différentes fonctions. Cette division doit être telle que chaque fonction accomplisse une tâche spécifique.

Il existe de nombreuses fonctions intégrées dans le C++ bibliothèque standard. Vous pouvez appeler ces fonctions dans votre programme.

Pourquoi utiliser des fonctions ?

Il existe de nombreux avantages associés à l’utilisation des fonctions. Ceux-ci inclus:

  • Chaque fonction rassemble le code associé. Cela permet aux programmeurs de comprendre plus facilement le code.
  • Les fonctions facilitent la programmation en éliminant la répétition du code.
  • Les fonctions facilitent la réutilisation du code. Vous pouvez appeler la même fonction pour effectuer une tâche dans différentes sections du programme ou même en dehors du programme.

Fonctions intégrées

In C++, les fonctions de la bibliothèque sont intégrées C++ fonctions. Pour utiliser ces fonctions, il vous suffit de les invoquer/appeler directement. Vous n'êtes pas obligé d'écrire les fonctions vous-même.

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

Sortie :

Sortie du C++ Exemple de fonction sqrt() intégrée

Voici une capture d'écran du code :

C++ code appelant la fonction sqrt() intégrée de cmath

Code Explication:

  1. Incluez le fichier d'en-tête iostream dans notre programme pour utiliser ses fonctions.
  2. Incluez la bibliothèque cmath pour utiliser ses fonctions. Nous voulons utiliser la fonction sqrt() qui y est définie.
  3. Incluez l'espace de noms std dans notre code pour utiliser ses classes sans l'appeler.
  4. Appelez la fonction main(). La logique du programme doit être ajoutée dans le corps de cette fonction.
  5. Déclarez deux variables doubles, num et squareRoot.
  6. Imprimez du texte sur la console. Le texte demande à l'utilisateur de saisir un numéro.
  7. Lire les entrées de l'utilisateur à partir du clavier. L'entrée deviendra la valeur de la variable num.
  8. Appelez la fonction bibliothèque sqrt(), qui calcule la racine carrée d'un nombre. Nous avons passé le paramètre num à la fonction, ce qui signifie qu'elle calculera la racine carrée de num. Cette fonction est définie dans la bibliothèque cmath.
  9. Imprimez le nombre saisi par l'utilisateur, sa racine carrée et un autre texte sur la console.
  10. Le programme doit renvoyer de la valeur une fois terminé.
  11. Fin du corps de la fonction main().

Fonctions définies par l'utilisateur

C++ permet aux programmeurs de définir leurs propres fonctions. Le but de la fonction est de regrouper le code associé. Le code reçoit ensuite un identifiant unique, le nom de la fonction.

La fonction peut être appelée/invoquée depuis n’importe quelle autre partie du programme. Il exécutera ensuite le code défini dans son corps.

Exemple 2:

#include <iostream>
using namespace std;

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

int main() {

	sayHello();

	return 0;
}

Sortie :

Sortie du C++ fonction sayHello() définie par l'utilisateur

Voici une capture d'écran du code :

C++ code définissant et appelant une fonction définie par l'utilisateur

Code Explication:

  1. Incluez le fichier d'en-tête iostream dans notre programme pour utiliser ses fonctions.
  2. Incluez l'espace de noms std dans notre code pour utiliser ses classes sans l'appeler.
  3. Créez une fonction définie par l'utilisateur nommée sayHello().
  4. Imprime du texte sur la console lorsque la fonction sayHello() est appelée.
  5. Fin du corps de la fonction sayHello().
  6. Appelez la fonction main(). La logique du programme doit être ajoutée dans le corps de cette fonction.
  7. Appelez/invoquez la fonction nommée sayHello().
  8. Le programme doit renvoyer de la valeur une fois terminé.
  9. Fin du corps de la fonction main().

Le compilateur doit connaître une fonction avant qu'elle ne soit utilisée.

Déclaration de fonction/Prototype

Si vous définissez une fonction définie par l'utilisateur après la fonction main(), le C++ compilateur renverra une erreur. La raison en est que le compilateur ne connaît pas les détails de la fonction définie par l'utilisateur. Les détails incluent son nom, les types d'arguments et leurs types de retour.

In C++, la déclaration/prototype de fonction déclare une fonction sans corps. Cela donne au compilateur les détails de la fonction définie par l'utilisateur.

Dans la déclaration/prototype, nous incluons le type de retour, le nom de la fonction et les types d'arguments. Les noms des arguments ne sont pas ajoutés. Cependant, l'ajout des noms d'arguments ne génère aucune erreur.

C++ Diagramme de syntaxe de déclaration de fonction/prototype

Définition de la fonction

Le but de la déclaration de fonction est d'indiquer au C++ compilateur sur le nom de la fonction, le type de retour et les paramètres. Une définition de fonction indique au C++ compilateur sur le corps de la fonction.

C++ diagramme de structure de définition de fonction

Syntaxe

return_datatype function_name( parameters) {
   function body 
}

D’après ce qui précède, une définition de fonction comporte l’en-tête et le corps de la fonction. Voici une explication des paramètres :

  • type_de_données_de_retour : certaines fonctions renvoient une valeur. Ce paramètre indique le type de données de la valeur de retour. D'autres fonctions ne renvoient aucune valeur. Dans ce cas, la valeur de ce paramètre est nulle.
  • function_name- C'est le nom de la fonction. Le nom de la fonction et les paramètres forment la signature de la fonction.
  • Paramètres : il s’agit du type, de l’ordre et du nombre de paramètres de la fonction. Certaines fonctions n’ont pas de paramètres.
  • corps de fonction- ce sont des déclarations définissant ce que fera la fonction.

Appel de fonction

Pour qu’une fonction effectue la tâche spécifiée et renvoie une sortie, elle doit être appelée. Lorsque vous appelez une fonction, elle exécute les instructions ajoutées dans son corps.

Une fonction est appelée par son nom. Si elle prend des paramètres, leurs valeurs doivent être fournies lors de l'appel. Si elle ne prend aucun paramètre, aucune valeur ne doit être fournie lors de l'appel.

C++ diagramme de syntaxe d'appel de fonction

Passer des arguments

In C++, un argument/paramètre correspond aux données transmises à une fonction lors de son appel. Les valeurs doivent être initialisées à leurs variables respectives.

Lors de l'appel d'une fonction, le nombre d'arguments doit correspondre à celui des paramètres. Autrement dit, les valeurs transmises doivent être égales au nombre de paramètres. De plus, le type des valeurs doit également correspondre à celui des paramètres. Si le premier paramètre est un entier, la valeur qui lui est transmise doit également être un entier.

Il est possible d'attribuer des valeurs par défaut aux paramètres d'une fonction. Si aucune valeur n'est spécifiée lors de l'appel de la fonction, la valeur par défaut sera utilisée.

Exemple 3 : Comment écrire et appeler une fonction

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

Sortie :

Sortie du C++ La fonction addFunc() renvoie une somme

Voici une capture d'écran du code :

C++ code passant des arguments à la fonction addFunc()

Code Explication:

  1. Incluez le fichier d'en-tête iostream dans notre programme pour utiliser ses fonctions.
  2. Incluez l'espace de noms std dans notre code pour utiliser ses classes sans l'appeler.
  3. Déclarez une fonction nommée addFunc() qui prend deux paramètres entiers. Cela crée le prototype de fonction.
  4. Appelez la fonction main(). La logique du programme doit être ajoutée dans le corps de cette fonction.
  5. Déclarez trois variables entières, x, y et somme.
  6. Imprimez du texte sur la console. Le texte demande à l'utilisateur de saisir deux chiffres.
  7. Lisez la saisie de l'utilisateur à partir du clavier. L'utilisateur doit saisir deux nombres pour les variables x et y, séparés par un espace.
  8. Appelez la fonction addFunc() et passez-lui les paramètres x et y. La fonction fonctionnera sur ces paramètres et affectera la sortie à la somme variable.
  9. Imprimez les valeurs des variables x, y et sum sur la console avec d'autres textes.
  10. La fonction doit renvoyer une valeur une fois terminée avec succès.
  11. Fin du corps de la fonction main().
  12. Définition de la fonction. Nous définissons la fonction addFunc(). Nous indiquerons ce que la fonction fera dans son corps, le { }.
  13. Déclaration d'une variable entière nommée addFunc.
  14. Ajouter les valeurs des paramètres num1 et num2 et affecter le résultat à la variable addFunc.
  15. La fonction addFunc() doit renvoyer la valeur de la variable addFunc.
  16. Fin du corps de la fonction, c'est-à-dire définition de la fonction.

FAQ

Le passage par valeur copie l'argument ; les modifications effectuées à l'intérieur de la fonction n'affectent donc pas l'original. Le passage par référence transmet la variable avec une esperluette, permettant ainsi à la fonction de modifier directement la valeur de l'appelant. C++ Par défaut, l'appel se fait par valeur.

La surcharge de fonctions permet à plusieurs fonctions de partager un même nom tout en différant par le nombre ou le type de leurs paramètres. Le compilateur sélectionne la version appropriée parmi les arguments fournis, ce qui améliore la lisibilité des opérations associées.

Une fonction inline demande au compilateur d'insérer son corps à chaque appel, au lieu d'effectuer un appel classique. Cela peut réduire la surcharge pour les fonctions très courtes, même si le compilateur peut ignorer cette indication.

Une fonction récursive s'appelle elle-même, décomposant un problème en sous-problèmes plus simples. Elle nécessite un cas de base pour arrêter la récursion ; sinon, les appels se répètent indéfiniment et provoquent un débordement de la pile. La factorielle en est un exemple classique.

Vous transmettez le paramètre sous forme de pointeur ou de tableau dimensionné, et vous indiquez généralement sa longueur séparément, car le tableau est converti en pointeur. Voir la section sur la transmission des paramètres. tableaux dans C++ fonctions pour des exemples complets.

Une fonction renvoie directement une valeur, mais vous pouvez en renvoyer plusieurs en utilisant des paramètres de référence de sortie, une structure, un `std::pair`, un `std::tuple` ou un `std::vector`. Les liaisons structurées décompressent ensuite le tuple renvoyé au point d'appel.

Oui. Les assistants de codage IA transforment un commentaire en langage clair en un code complet. C++ La fonction est simplifiée : elle suggère la signature, le corps et le type de retour. Elle restructure également les fonctions longues, mais il est conseillé de vérifier la logique générée.

Copilote GitHub saisie semi-automatique C++ Il analyse les définitions de fonctions, les prototypes et les appels à partir de vos commentaires ou noms, propose des surcharges et génère des ébauches de tests unitaires. Il utilise les en-têtes référencés pour le contexte, mais chaque suggestion doit encore être examinée.

Résumez cet article avec :