Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
code_language:c [2025/12/17 23:51] 216.73.216.214 ancienne révision (2025/10/31 20:19) restaurée |
code_language:c [2025/12/17 23:53] (Version actuelle) 216.73.216.214 ancienne révision (2025/10/31 20:29) restaurée |
||
|---|---|---|---|
| Ligne 426: | Ligne 426: | ||
| ===== Fonctions ===== | ===== Fonctions ===== | ||
| + | === Declaration === | ||
| * Fonction avec paramètre: | * Fonction avec paramètre: | ||
| * <code c++> int addition(int a, int b) | * <code c++> int addition(int a, int b) | ||
| Ligne 437: | Ligne 437: | ||
| return a*b*c; | return a*b*c; | ||
| } </ | } </ | ||
| + | * Fonction avec paramètre dont certain ont une valeur par défaut c'est a dire ne sont pas obligatoire: | ||
| + | * <code c++> #include < | ||
| + | using namespace std; | ||
| + | |||
| + | // Prototype avec les valeurs par défaut | ||
| + | int nombreDeSecondes(int heures, int minutes = 0, int secondes = 0); | ||
| + | |||
| + | // Main | ||
| + | int main() | ||
| + | { | ||
| + | cout << nombreDeSecondes(1, | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | |||
| + | // Définition de la fonction, SANS les valeurs par défaut | ||
| + | int nombreDeSecondes(int heures, int minutes, int secondes) | ||
| + | { | ||
| + | int total = 0; | ||
| + | |||
| + | total = heures * 60 * 60; | ||
| + | total += minutes * 60; | ||
| + | total += secondes; | ||
| + | |||
| + | return total; | ||
| + | } </ | ||
| + | * Ici on voit que l'on met les valeur par défaut uniquement dans la déclaration de la fonction dans le fichier .hpp. Attention si on fait appelle une fonction avec 3 paramètre, on ne peut pas renseigner le premier et le dernier ( INTERDIT), si on veut renseigné le dernier paramètre sans celui du milieu on est obligé de déclarer le paramètre du milieu avec notamment une valeur par défaut. | ||
| * Fonction sans paramètre: | * Fonction sans paramètre: | ||
| * <code c++> string demanderNom() | * <code c++> string demanderNom() | ||
| Ligne 462: | Ligne 489: | ||
| return 0; | return 0; | ||
| } </ | } </ | ||
| + | |||
| + | === Fichier source et fichier d' | ||
| + | * Un fichier source dont l' | ||
| + | * Le fichier math.cpp doit contenir un include " | ||
| + | * <code c++> #include " | ||
| + | |||
| + | int ajouteDeux(int nombreRecu) | ||
| + | { | ||
| + | int valeur(nombreRecu + 2); | ||
| + | |||
| + | return valeur; | ||
| + | } </ | ||
| + | * Un fichier d' | ||
| + | * Le fichier doit contenir ses trois lignes pour empêcher d' | ||
| + | * <code c++># | ||
| + | #define MATH_HPP_INCLUDED | ||
| + | |||
| + | #endif // MATH_HPP_INCLUDED</ | ||
| + | * voici un exemple de déclaration de fonciton: | ||
| + | * <code c++># | ||
| + | #define MATH_HPP_INCLUDED | ||
| + | |||
| + | int ajouteDeux(int nombreRecu); | ||
| + | |||
| + | #endif // MATH_HPP_INCLUDED </ | ||
| + | * Si le paramètre de notre fonction est de type string il faut ajouté en include les string et faire précedé le type par son nom de domaine, ici std: | ||
| + | * <code c++># | ||
| + | #define MATH_HPP_INCLUDED | ||
| + | |||
| + | #include < | ||
| + | |||
| + | void afficherMessage(std:: | ||
| + | |||
| + | #endif // MATH_HPP_INCLUDED </ | ||
| + | * L' | ||
| + | * std apparaît dans tous nos fichiers source via la ligne using namespace std . Comme il n'y a pas de telle ligne ici (et qu'il est très vivement déconseillé de la mettre dans un fichier d' | ||
| + | * Inclure tout cela dans la fichier main.cpp | ||
| + | * <code c++> #include < | ||
| + | #include " | ||
| + | using namespace std; | ||
| + | |||
| + | int main() | ||
| + | { | ||
| + | int a(2),b(2); | ||
| + | cout << " | ||
| + | cout << " | ||
| + | b = ajouteDeux(a); | ||
| + | cout << " | ||
| + | cout << " | ||
| + | |||
| + | return 0; | ||
| + | } </ | ||
| + | * Dans le fichier .hpp il est recommander de mettre en commantaire ce que fait la fonction, la liste des arguments, les caracteristique de la valeur retournée. | ||
| + | |||
| + | |||
| ===== Programmation avancée ===== | ===== Programmation avancée ===== | ||
| + | === Argument de fonction passé par Valeur ==== | ||
| + | * Lorsqu' | ||
| + | * <code c++> #include < | ||
| + | using namespace std; | ||
| + | |||
| + | int ajouteDeux(int a) | ||
| + | { | ||
| + | a+=2; | ||
| + | return a; | ||
| + | } | ||
| + | |||
| + | int main() | ||
| + | { | ||
| + | int nombre(4), resultat; | ||
| + | resultat = ajouteDeux(nombre); | ||
| + | | ||
| + | cout << "Le nombre original vaut : " << nombre << endl; | ||
| + | cout << "Le resultat vaut : " << resultat << endl; | ||
| + | return 0; | ||
| + | } </ | ||
| + | * Dans ce cas la la variable nombre est copiée ans une nouvelle case mémoire et sa valeur n'est pas changé. | ||
| + | |||
| + | === Argument de fonction passé par Reference ==== | ||
| + | * Lorsqu' | ||
| + | * <code c++> int ajouteDeux(int& | ||
| + | { | ||
| + | a+=2; | ||
| + | return a; | ||
| + | } </ | ||
| + | * Dans ce cas la , la variable nombre a une reference " | ||
| + | |||
| + | === Argument de fonction passé par Reference constante ==== | ||
| + | * Lorsqu' | ||
| + | * <code c++> void f1(string const& texte) //Pas de copie et pas de modification possible | ||
| + | { | ||
| + | }</ | ||
| + | * Dans ce cas la , la variable passé en paramètre n'est pas copié, on y fait reference mais la variable n'est pas modifiable. | ||
| === Paradigme de programmation classe/ | === Paradigme de programmation classe/ | ||
| Ligne 478: | Ligne 597: | ||
| === Methode de classe === | === Methode de classe === | ||
| + | |||