CoursDocuments

Programmation Orienté Objet en C++( science 3)

MODULE : POO 

Enseignant : Mohamed Kharrat Année universitaire 2016/2017 

Séance 3 

Arguments par défaut 

  • définition : 

void fonction(int a, int b, int c) 

cout << a << « , » << b << « , » << c; 

cout << endl; 

return; 

} prototype : 

void fonction(int, int=0, int=1); 

Arguments par défaut 

  • utilisation : 

void main() 

int x,y; 

x=4; 

y=x+5; 

fonction(y); // fonction(y,0,1); 

fonction(2,x); // fonction(2,x,1); 

fonction(x,y,x+y); // 3 arguments 

Arguments par défaut Cas particuliers, attention danger 

  • En C++, on ne peut pas « sauter » des paramètres, même s’ils sont facultatifs. 
  • Est-ce qu’on peut rendre seulement ‘a’ facultatif, et rendre ‘b’ et ‘c’ obligatoires ? 

Surcharge de fonctions 

prototype 

void f(int,int); void f(int,double); void f(double,int); 

les 3 fonctions coexistent dans un programme 

Exemple 

Fonction permettant d’additionner deux entiers, puis une autre deux flottants. 

int add(int a, int b) { return a+b; } 

float add(float a, float b) { return a+9; } 

//pas de problème de conflit de nom, le compilateur est suffisamment malin pour deviner quoi faire avec 

int neuf = add(4,5); 

float f = add(4.6f,99.23f); 

Attention : pas de prise en compte de la valeur de retour. 

Signature = Nom+Liste des Types

Fonctions prenant un nombre variable de paramètres 

  • Pour indiquer au compilateur qu’une fonction peut accepter une liste de paramètres variable, il faut simplement utiliser des points de suspensions dans la liste des paramètres dans les déclarations et la définition de la fonction. : 

type identificateur(paramètres, …) 

  • Il faut ajouter la ligne suivante au début du programme : 
  • #include <stdarg.h> 

#include <stdarg.h> 

  • Cela permet d’utiliser le type va_list et les expressions va_start, va_arg et va_end pour récupérer les arguments de la liste de paramètres variable, un à un. va_start(variable, paramètre) ; va_arg(variable, type) va_end(variable) ; 
  • Problème ! !!!!!!!!!!!!!!! Nombre de paramètres inconnu pour la fonction 

Fonction à nombre de paramètres variable 

#include <stdarg.h> 

/* Fonction effectuant la somme de « compte » 

do /* Parcours de la liste. */ paramètres : */ { double somme(int compte, …) 

resultat=resultat+va_arg(varg, double); compte=compte-1; { } while (compte!=0); 

double resultat=0; /* Variable stockant la somme. */ 

va_end(varg); /* Terminaison. */ va_list varg; /* Variable identifiant le prochain 

return resultat; 

paramètre. */ } va_start(varg, compte); /* Initialisation de la liste. */ 

Exemple d’appel: double RR= somme(3, 4.0, 10.0, 3.0) ; 

L’en-tête fstream : lire & écrire dans un fichier 

  • il faut spécifier #include <fstream> . 
  • Les flux sont des objets
  • Les fichiers ouverts sont automatiquement refermés lorsque l’on sort du bloc où le flux est déclaré. 
  • Ouvrir un fichier en écriture: 
  • On déclare un flux exactement de la même manière qu’une variable, une variable dont le type serait ofstream et dont la valeur serait le chemin d’accès du fichier à lire. 

ofstream monFlux(« C:/dossier/scores.txt »); 

//Déclaration d’un flux permettant d’écrire dans le fichier 

10 « C:/dossier/scores.txt » 

Test 

if(monFlux) //On teste si tout est OK { 

//Tout est OK, on peut utiliser le fichier } else

cout << « ERREUR: Impossible d’ouvrir le fichier. » << endl; } 

11 

Écrire dans un flux 

  • Il faut utiliser les chevrons (<<) if(monFlux) 

monFlux << « Année universitaire. » << endl; monFlux << 2016/2017 << endl; int mois(9); monFlux << « Mois  » << mois <<  » ans. » << endl; } 

12 

télécharger gratuitement cours de Programmation Orienté Objet en C++(science 3)

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Bouton retour en haut de la page

Adblock détecté

S'il vous plaît envisager de nous soutenir en désactivant votre bloqueur de publicité