Const 객체를 'this' 인수로 전달: 한정자 실격 오류
C에서 const 객체를 멤버 함수에 'this' 인수로 전달 "멤버 함수의 'this' 인수로 'const xxx'를 전달하면 한정자가 삭제됩니다." 오류가 발생할 수 있습니다. 이는 컴파일러가 const 객체가 아닌 멤버 함수가 객체를 수정할 수 있는 가능성을 고려하기 때문에 발생하며 이는 const 객체에 대해 금지됩니다.
문제 분석
제공된 코드에서 , 세트의 객체는 const StudentT로 저장됩니다. 루프 내에서 멤버 함수 getId() 및 getName()에 액세스할 때 객체는 const이고 멤버 함수는 const로 표시되지 않으므로 컴파일러는 이 문제를 감지합니다.
Solution
오류를 해결하려면 getId() 및 getName() 함수를 만들어야 합니다. const:
int getId() const { return id; } string getName() const { return name; }
이를 사용하면 const 규칙을 위반하지 않고 const 개체에 대해 함수를 호출할 수 있습니다.
추가 참고 사항
inline bool operator
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3