Passer des objets Const en tant qu'argument 'this' : erreur de disqualification du qualificatif
En C, transmettre des objets const en tant qu'arguments 'this' aux fonctions membres peut entraîner des erreurs "passer 'const xxx' comme 'cet' argument de la fonction membre rejette les qualificatifs". Cela se produit parce que le compilateur considère la possibilité que des fonctions non membres const puissent modifier l'objet, ce qui est interdit pour les objets const.
Analyse du problème
Dans le code fourni , les objets de l'ensemble sont stockés sous la forme const StudentT. Lors de l'accès aux fonctions membres getId() et getName() dans la boucle, le compilateur détecte ce problème car les objets sont const et les fonctions membres ne sont pas marquées comme const.
Solution
Pour résoudre l'erreur, les fonctions getId() et getName() doivent être rendues const :
int getId() const { return id; } string getName() const { return name; }
Cela permet aux fonctions de être appelé sur des objets const sans enfreindre les règles const.
Notes supplémentaires
inline bool operator< (const StudentT & s1, const StudentT & s2) { return s1.getId() < s2.getId(); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!