Contenu du cours
Fonctions C++
Fonctions C++
Arguments de Fonction Constants
En C++, les arguments constants d'une fonction indiquent que les valeurs passées à la fonction en tant que paramètres ne peuvent pas être modifiées à l'intérieur de la fonction. Pour déclarer un argument constant, nous devons utiliser le mot-clé const
avant le spécificateur de type de l'argument dans la signature de la fonction:
Examinons maintenant la différence entre l'utilisation de const
avec des arguments passés par valeur et par pointeur/référence.
Passage par valeur d'arguments const
Lorsqu'un paramètre est passé par valeur et déclaré comme const
, cela signifie qu'une copie de la valeur est effectuée, et la fonction ne peut pas modifier cette copie.
Dans ce cas, le qualificateur const
sert de documentation, indiquant aux autres développeurs que la fonction ne modifie pas le paramètre:
example
double calculateSquare(const double number) { return number * number; }
Le qualificateur const
garantit que le paramètre number
ne peut pas être modifié dans la fonction calculateSquare()
, et nous pouvons être sûrs de l'intégrité des données copiées.
Passer des arguments constants par pointeur/référence
L'utilisation de constantes avec des pointeurs ou des références garantit la préservation des données originales, contrairement au passage d'arguments par valeur. Bien que l'optimisation de la mémoire nécessite souvent de passer les paramètres via des pointeurs ou des références, il devient crucial de maintenir l'intégrité des données originales au sein de la fonction.
main
#include <iostream> // Function definition double calculateArea(const double* radiusPtr, const double& pi) { // Check if the pointer and reference are not null if (*radiusPtr > 0) return pi * (*radiusPtr) * (*radiusPtr); else return 0; // Invalid radius, return 0 } int main() { double radius = 5.0; double pi = 3.14159; double area = calculateArea(&radius, pi); std::cout << "Area of the circle with radius " << radius << " is: " << area << std::endl; }
Merci pour vos commentaires !