Un vector d'objet qui refuse d'être const pour utiliser les méthodes de l'objet [Résolu]

Signaler
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
-
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
-

7 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
je t'ai dit qu'il fallait mettre Affiche() en const. nom() aussi devrai sans doute être mise en const
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
Petit problème lol voici la question :
Bonjours tous, j'ai un truc bizard avec un vector : je fais un vector d'objet "Application", mais au moment d'utiliser des méthodes de cette classe il m'affiche un erreur :
error C2662: 'nom' : cannot convert 'this' pointer from 'const class Application' to 'class Application &'
voici mon code :
void afficheTout(const vector & tabCmd)
{
cout<<"Ligne de commande :"<<endl;
for (int i=0; i<tabCmd.size();i++)
{
tabCmd[i].Affiche();
}
}
comble de la bizarerie : en enlevant le const ca marche
void afficheTout(vector & tabCmd)
{
cout<<"Ligne de commande :"<<endl;
for (int i=0; i<tabCmd.size();i++)
{
tabCmd[i].Affiche();
}
}
quelqu'un a une idée?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Le problème est sans doute que Application::Affiche n'est pas const. Elle devrait ressembler à ca:

void Application::Affiche() const
{
//...
}

le const ici signifie que tu ne modifies pas this
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
Même erreur : error C2662: 'nom' : cannot convert 'this' pointer from 'const class Application' to 'class Application &'il veut toujours pas.
Merci quand même ;)
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
D'ou sort ce 'nom'?
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
nom est une methode de la classe Application : elle retourn le nom de mon Application
class Application
{
private:
string _portIO[3];
string _nom;
int _idproc;
public:
Application();
Application(string cmd);
string nom(){return _nom;};<-------
string portIO(const int& leport);
int idproc(){return _idproc;};
bool definie(string cmd);
void Affiche();
};
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
Ca Marche!!
Merci, vraiment.
Icar