Ensembles, combinaisons - surcharge et autre
Bonjour,
Je souhaite réaliser des codes pouvant créer des ensemble de int et des ensemble de Combinaison, mes Combinaison étant une classe par exemple composé de int
Ma classe Ensemble a pour attribut :
Code:
1 2
| int taille;
type* tab; |
Ma classe Combinaison pour attribut :
Code:
1 2 3
| unsigned int nbElts;
int* elts;
unsigned int rapport; |
J'ai d'autres méthodes de classe etc,...
Mon accesseur au tableau de la classe ensemble a pôur prototype :
Code:
const type* obtenirElements(unsigned int& t) const;
Mon accesseur aux elements de la classe combinaison a pour prototype :
Code:
const int* Combinaison::lireElts(unsigned int& N) const
Je dispose d'une classe bandit qui a pour attribut :
Code:
1 2
| Ensemble<Combinaison> CG;
Ensemble<int> CS; |
Ainsi j'ai aussi des patrons de fonctions ,...
Dans ma classe bandit je souhaite Comparer une combinaison avec toutes les combinaisons de CG :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| unsigned int rapport,nbr,nbr_2;
if(CG.appartientA(C_alea))
{
cout << "vous avez gagné ";
const Ensemble<Combinaison>*tab_CG = lireEnsembleCG();
const Combinaison* CG_tab_2;
CG_tab_2=tab_CG->obtenirElements(nbr);
for(unsigned int i=0;i<nbr;i++)
{
if(CG_tab_2[i]==C_alea)
{rapport=CG_tab_2[i].lireRapport();}
//rapport=t.lireRapport();
}
return 1;} |
J'avais préalablement effectué ma surcharge d'opérateur de la classe Combinaison pour pouvoir comparer des ensemble et des combinaisons:
Code:
1 2 3 4 5 6 7 8 9 10 11
| bool Combinaison::operator ==(const Combinaison& C1)
{int i=0,k=0;
if (nbElts!= C1.nbElts)
return 0;
for(i=0; i<nbElts; i++)
{
if(elts[i]!=C1.elts[i])
return 0;
}
return 1;
} |
Ma question est dans mon code de la classe Bandit ou j'effectue CG_tab_2[i]==C_alea et là j'ai un erreur de compilation :
Code:
/home/me/POO/TP4/Bandit.cpp:84:20: error: passing const Combinaison as this argument of bool Combinaison::operator==(const Combinaison&) discards qualifiers [-fpermissive]
Je voudrais enfait accéder à l'indice pour lequel C_alea est égale à une combinaison de CG_tab car vu mon opérateur == mon programme se contente de dire si oui ou non C_alea est égale à une combinaison de l'ensemble<Combinaison>
Comment faire ?
Merci d'avance
Lucile