Bonjour,

j'ai eu un petit souci avec une méthode. Je l'ai résolu mais je ne comprends pas comment...

Pour expliquer, voici mon code: (j'ai enlevé les include et tout ça...)

Dans main.cpp:
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
 
void displayObj(const vector<myObject> &theObjects);
 
int main()
{
    ...
}
 
void displayObj(const vector<myObject> &theObjects)
{
    for(unsigned int i(0); i < theObjects.size(); i++)
    {
        theObjects[i].afficher();
    }
}
Dans myObject.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
void myObject::afficher()
{
    cout << "Nom : " << m_nom << ", Age : " << m_age << endl;
}
Dans cette configuration là mon code ne compile pas. L'erreur est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
error: passing 'const Arme' as 'this' argument of 'void myObject::afficher()' discards qualifiers
Et lorsque j'enlève le 'const' en paramètre de ma fonction displayObj, là je n'ai plus de problèmes! Mais je ne comprends pas pourquoi...

Si certains ont une explication, merci