Bonjour,
je travail sur un exercice de c++ où je dois redéfinir l'opérateur "=" pour une classe "set_int" définit ci-dessous. Sauf que le compilateur m'affiche l'erreur suivante:.no matching function for call to 'set_int::set_int()'
merci de m'aider à corriger cette classe pour qu'elle compile d'abord avant de redéfinir l'opérateur d'affectation "=".
set_int.h
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 #ifndef SET_INT_H #define SET_INT_H 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 dim); set_int(const set_int& e); ~set_int(); void ajoute (int) ; // ajout d'un élément int appartient (int) ; // appartenance d'un élément int cardinal () ; // cardinal de l'ensemble }; #endif // SET_INT_Hset_int.cpp
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
26
27
28
29
30
31
32
33
34
35 #include "set_int.h" #include <iostream> using namespace std; set_int::set_int (int dim) { adval = new int [nmax = dim] ; // allocation tableau de valeurs nelem = 0 ; } set_int::set_int (const set_int& e) // ou set_int::set_int (const set_int & e) { adval = new int [nmax = e.nmax] ; // allocation nouveau tableau nelem = e.nelem ; int i ; for (i=0 ; i<nelem ; i++) // copie ancien tableau dans nouveau adval[i] = e.adval[i] ; } set_int::~set_int () { delete adval ; // libération tableau de valeurs } void set_int::ajoute (int nb) { if (!appartient (nb) && (nelem<nmax)) adval [nelem++] = nb ; } int set_int::appartient (int nb) { int i=0 ; while ( (i<nelem) && (adval[i] != nb) ) i++ ; return (i<nelem) ; } int set_int::cardinal () { return nelem ; }main.cpp
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 #include <iostream> #include "set_int.h" using namespace std; int main() { set_int p; cout << "donnez 20 entiers \n" ; int i, n ; for (i=0 ; i<20 ; i++) { cin >> n ; p.ajoute(n); } cout << "il y a : " <<p.cardinal()<< " entiers différents\n" ; return 0; }
Partager