Cộng đồng Hỏi & Đáp của Inflearn
const의 위치에 대해 질문이 있습니다!
Viết
·
805
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가 들어가니 '값을 바꾸지 않는 함수다' 라는 같은 뜻인 줄 알았는데 어떤 차이가 있는지 궁금합니다! 감사합니다!
C++
Câu trả lời 2
2
honglab
Người chia sẻ kiến thức
(1)은 반환값이 const이고 (2)는 멤버함수 내부에서 멤버 변수의 값을 바꾸지 못합니다.
(1)은 보통 const int & getValue(){...} 같이 참조를 반환할 때 더 많이 사용합니다.
그 아래 부분은 코드 전체가 없어서 어떤 오류인지 잘 모르겠네요. 위에 설명해드린 내용에 맞춰서 다시 생각해보시면 이해하실 수 있을겁니다.
0





