오류: Const 객체를 'this' 인수로 전달
주어진 C 코드에서 getId에 액세스하려고 시도하는 동안 오류가 발생합니다. () 및 getName()에 저장된 객체의 멤버 함수 std::set:
<br>오류: 'const StudentT'를 'int StudentT::getId()'의 'this' 인수로 전달하면 한정자가 삭제됩니다.<br>오류: 'const 전달 StudentT'를 'std::string StudentT::getName()'의 'this' 인수로 사용하면 삭제됩니다. qualifiers<br>
이 오류는 std::set 내의 개체가 const StudentT 인스턴스로 저장된다는 사실에서 발생합니다. 이러한 const 객체에 대해 getId() 및 getName() 함수를 호출하면 컴파일러가 문제를 감지합니다.
C에서는 const가 아닌 멤버 함수가 const 객체를 수정할 수 없습니다. getId() 및 getName()은 호출된 객체를 잠재적으로 수정할 수 있는 비-const 함수입니다. 그러나 세트의 객체는 const이므로 이러한 멤버 함수를 통해 이를 수정하려고 하면 오류가 발생합니다.
해결책은 getId() 및 getName() 함수도 const로 만드는 것입니다.
int getId() const { return id; } string getName() const { return name; }
이러한 함수를 const로 만들면 해당 함수가 호출된 개체를 수정하지 않고 컴파일러가 const에서 해당 함수를 사용할 수 있음을 나타냅니다. 개체.
추가로 연산자< 비교 기능으로 의도된 용도와 일치하도록 const 참조로 사용:
inline bool operator< (const StudentT & s1, const StudentT & s2) { return s1.getId() < s2.getId(); }
위 내용은 C에서 `getId()` 및 `getName()`이 ''const' 객체를 'this' 인수로 전달' 오류를 일으키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!