"const xxx를 멤버 함수의 'this' 인수로 전달하면 한정자가 삭제됩니다. ," 이는 const가 아닌 멤버 함수가 const 개체에서 호출되고 있음을 나타냅니다. 이 경우 std::set 내에 저장된 StudentT 개체의 getId() 및 getName() 메서드에 액세스할 때 문제가 발생합니다.
std::set의 개체 const StudentT로 저장됩니다. 반복기 역참조(*itr)에서 getId() 및 getName()을 호출하면 컴파일러가 불일치를 감지합니다. 멤버 함수는 const가 아니지만 액세스되는 개체는 const입니다.
이 문제를 해결하려면 멤버 함수 getId() 및 getName()을 const 메서드로 선언해야 합니다. :
int getId() const { return id; } string getName() const { return name; }
이를 const 메소드로 선언하면 StudentT 객체를 수정하지 않고 안전하게 호출할 수 있음이 보장됩니다. const 객체.
연산자< 또한 set 연산을 수행할 때 const StudentT 개체에 대해 호출되므로 const 메서드로 선언해야 합니다.
inline bool operator< (const StudentT & s1, const StudentT & s2) { return s1.getId() < s2.getId(); }
이를 const로 선언하면 연산자가 비교되는 개체를 수정하지 않도록 보장할 수 있습니다.
위 내용은 C에서 '멤버 함수의 'this' 인수로 const xxx를 전달하면 한정자가 삭제됩니다.' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!