thyung   4년 전

일단 코드 제출할 때는 cmp함수의 매개변수 작성시 const와 &를 빼고 제출하여 맞았습니다. visual studio에서 돌릴 때 제 코드에서 아래처럼 cmp함수의 매개변수 작성 시 const Student &a라고 쓰면 "개체에 멤버함수 Student::getKor와 호환되지 않는 형식 한정자가 있습니다'라는 에러가 떠서 그랬습니다. 저 에러가 뜨는 이유는 무엇이고, const와 &를 써서 작성하고 싶으면 어떻게 해야 하나요??

(멤버함수를 쓰지 않고, 멤버변수들을 public으로 설정한 후 멤버변수로 바로 접근하면 저 에러가 뜨지 않던데 이거랑 관련되어 있는거 같기도 합니다. const & 형식의 문법을 제가 잘 모르는 것 같습니다)

rubix   4년 전

getNamw(), getKor(), …에서 멤버 변수를 수정하지 않는다는 보장이 없기 때문입니다.

13~16줄을 아래와 같이 고치면 됩니다.

thyung   4년 전

rubix님 감사합니다. 그러면 멤버함수에 쓴 const의 의미는 return값을 나타내는 변수의 값을 변경할 수 없다는 의미인가요?

rubix   4년 전

멤버함수에 쓴 const는 "이 함수에서 이 객체의 멤버 변수를 수정하지 않겠다"는 뜻입니다.

댓글을 작성하려면 로그인해야 합니다.