將const 物件作為'this' 參數傳遞:限定符不合格錯誤
在C 中,將const 物件作為'this'參數傳遞給成員函數可能會導致「將'const xxx'作為成員函數的'this'參數傳遞會丟棄限定符」錯誤。發生這種情況是因為編譯器考慮到非 const 成員函數可能會修改對象,而 const 物件是禁止這樣做的。
問題分析
提供的程式碼中,集合中的物件儲存為 const StudentT。在迴圈內存取成員函數 getId() 和 getName() 時,編譯器會偵測到此問題,因為物件是 const 且成員函數未標記為 const。
解
要解決該錯誤,必須使用getId() 和getName() 函數const:
int getId() const { return id; } string getName() const { return name; }
這允許在const物件上呼叫函數而不違反const 規則。
附加說明
inline bool operator< (const StudentT & s1, const StudentT & s2) { return s1.getId() < s2.getId(); }
以上是為什麼將 Const 物件傳遞給非常量成員函數會導致 C 中的限定符取消資格錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!