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

Résolu
Icarius44
Messages postés
51
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
- 7 déc. 2005 à 23:49
Icarius44
Messages postés
51
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
- 8 déc. 2005 à 02:16

7 réponses

vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
8 déc. 2005 à 02:04
je t'ai dit qu'il fallait mettre Affiche() en const. nom() aussi devrai sans doute être mise en const
3
Icarius44
Messages postés
51
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
7 déc. 2005 à 23:50
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?
0
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
8 déc. 2005 à 01:16
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
0
Icarius44
Messages postés
51
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
8 déc. 2005 à 01:50
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 ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
8 déc. 2005 à 01:56
D'ou sort ce 'nom'?
0
Icarius44
Messages postés
51
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
8 déc. 2005 à 02:00
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();
};
0
Icarius44
Messages postés
51
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
1
8 déc. 2005 à 02:16
Ca Marche!!
Merci, vraiment.
Icar
0