const에 관해서 질문이요
글쓴이: nidle / 작성시간: 수, 2003/12/24 - 11:24오전
int sum(const int a,const int b); <------- 1.
int sum(int a,int b)const; <-------- 2.
이렇게 두가지 예1,2같은 건가요
아님 다른기능을하나요
변수가 참조형변수가 되면 또내용이 달라지는건가요,,
제가 본 책에서는 2번역시 멤버 변수를 함수에서 변화시키지못한다고
나왔던데 그럼 두가지가 같은거 아닌가요,,
참조하구 const 가 섞여버리면 도무지 이해가 안되네요,
Forums:
1 번은 인자를 (멤버 or 일반) 함수 내부에서 바꿀 수 없다는 것이고
1 번은 인자를 (멤버 or 일반) 함수 내부에서 바꿀 수 없다는 것이고
2 번은 그 멤버 함수 내부에서 클래스의 멤버를 읽기만 할 수 있다는 것입니다. (mutable 빼고) 그러므로 그 인자들은 바꿀 수 있습니다.
1 번의 경우에는 구현자가 조금 엄격한 사람이라면 그렇게 하기도 합니다. 이것은 확실히 입력에만 사용한다는 것을 외부에 알리기 위해서 이기도 합니다. 하지만 대부분 포인터나 리퍼런스일 경우에 많이 사용하는 경향이 있습니다. 일반형까지 const 를 쓰지는 않는 경우가 많구요. 물론 이때에는 의미가 또 틀려지므로 따로 생각해야 합니다만...
2 번의 경우에는 대부분 클래스 내부의 어떤 값이나 상황을 알려고 하는 멤버 함수일 경우에 사용합니다.
const 는 사용하는 곳이 여러군데라 그 의미하는 바도 약간씩 틀립니다. 좋은 텍스트를 구하셔서 꼭 확인하시기 바랍니다.
댓글 달기