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 :