작성
·
675
3
클래스 내의 멤버 함수에서
(1). const int getValue() { return this->m_var; }랑
(2). int getValue() const { return this->m_var; }는
의미/문법상 어떤 차이가 있나요?
메인 함수 내에서 const Something something;으로 클래스 객체를 만들었을 때,
(1)은 something.getValue()호출은 에러가 뜨고
(2)는 something.getValue()호출이 가능합니다.
(1)의 경우 E1086 - the object has type qualifiers that are not compatible with the member function "Something::getValue"라는 오류가 발생해서 생성된 객체에서 'const'를 빼보았더니 오류문이 사라졌습니다.
(1), (2) 둘 다 const가 들어가니 '값을 바꾸지 않는 함수다' 라는 같은 뜻인 줄 알았는데 어떤 차이가 있는지 궁금합니다! 감사합니다!