Const 객체를 'this' 인수로 전달: 한정자 부적격 오류
C에서 const 객체를 'this' 인수로 멤버 함수에 전달 "멤버 함수의 'this' 인수로 'const xxx'를 전달하면 한정자가 삭제됩니다." 오류가 발생할 수 있습니다. 이는 컴파일러가 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 개체가 아닌 멤버 함수에 Const 개체를 전달하면 C에서 한정자 실격 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!