IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Ensembles, combinaisons - surcharge et autre


Sujet :

C++

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 29
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         int taille; 
             type* tab;
    Ma classe Combinaison pour attribut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    const type* obtenirElements(unsigned int& t) const;
    Mon accesseur aux elements de la classe combinaison a pour prototype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const int* Combinaison::lireElts(unsigned int& N) const
    Je dispose d'une classe bandit qui a pour attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    /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

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Votre opérateur == n'est pas taggué const (le const après les parenthèses des paramètres).
    Mais bon, l'utilisation de std::vector à la place de ce capharnaüm de pointeurs nus de de membres inutiles, ça serait pas de refus.

Discussions similaires

  1. Combinaison de n éléments dans un ensemble de n éléments sans répétition
    Par clowny dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 03/01/2009, 12h06
  2. Réponses: 9
    Dernier message: 10/08/2008, 19h11
  3. Réponses: 0
    Dernier message: 13/12/2007, 18h08
  4. Réponses: 2
    Dernier message: 05/09/2007, 22h10
  5. Réponses: 2
    Dernier message: 29/06/2007, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo