Bonjour à tous,
Voilà, j'ai un petit problème de compréhension au niveau d'un de accesseurs de ma classe personnalisée...
Tout d'abord, voici la déclaration de la std::map
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::map<std::string, Object> objectsList;
En fait, ce code provoque une erreur (no operator "[]" matches these operands):
alors que celui-ci compile bien:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 const Object& MaClasse::getObject(std::string _name) const { return objectsList[_name]; }
La différence se situe donc au niveau du at/ des "[]".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 const Object& MaClasse::getObject(std::string _name) const { return objectsList.at(_name); }
Je ne comprends pas pourquoi ça ne fonctionne pas dans le premier cas, les deux sont censées être équivalents, non ?
Merci pour vos réponses !
Partager