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

Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
- - Dernière réponse : Icarius44
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
- 8 déc. 2005 à 02:16
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
3
Merci
je t'ai dit qu'il fallait mettre Affiche() en const. nom() aussi devrai sans doute être mise en const

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de vecchio56
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
0
Merci
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?
Commenter la réponse de Icarius44
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
0
Merci
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
Commenter la réponse de vecchio56
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
0
Merci
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 ;)
Commenter la réponse de Icarius44
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
0
Merci
D'ou sort ce 'nom'?
Commenter la réponse de vecchio56
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
0
Merci
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();
};
Commenter la réponse de Icarius44
Messages postés
53
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
16 mars 2009
0
Merci
Ca Marche!!
Merci, vraiment.
Icar
Commenter la réponse de Icarius44