Bonsoir,
je travaille sur un exercice c++, que je n'ai pas pu résoudre, qui demande de concevoir une classe qui manipule des ensembles d'entiers allouées dynamiquement dans un tableau. le livre où je travail propose comme solution à l'exercice veuillez voir ci-dessous.
ma question svp c'est l'explication du comportement des méthodes ajoute() et appartient()
merci
Voici la définition de notre classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 /* fichier SETINT1.H */ /* déclaration de la classe set_int */ class set_int { int * adval ; // adresse du tableau des valeurs int nmax ; // nombre maxi d'éléments int nelem ; // nombre courant d'éléments public : set_int (int = 20) ; // constructeur ~set_int () ; // destructeur void ajoute (int) ; // ajout d'un élément int appartient (int) ; // appartenance d'un élément int cardinal () ; // cardinal de l'ensemble } ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #include "setint1.h" set_int::set_int (int dim) { adval = new int [nmax = dim] ; // allocation tableau de valeurs nelem = 0 ; } set_int::~set_int () { delete adval ; // libération tableau de valeurs } void set_int::ajoute (int nb) { // on examine si nb appartient déjà à l'ensemble // en utilisant la fonction membre appartient // s'il n'y appartient pas et si l'ensemble n'est pas plein // on l'ajoute if (!appartient (nb) && (nelem<nmax)) adval [nelem++] = nb ; } int set_int::appartient (int nb) { int i=0 ; // on examine si nb appartient déjà à l'ensemble // (si ce n'est pas le cas, i vaudra nele en fin de boucle) while ( (i<nelem) && (adval[i] != nb) ) i++ ; return (i<nelem) ; } int set_int::cardinal () { return nelem ; }
Partager