-
[C/C++] const 잘 사용하기Tech/Development 2011. 7. 5. 15:01
const
를 어떻게 사용하고 있는지를 보면, C언어에 대한 조예가 어느정도 깊은지 알 수 있다고 한다. 실제로 아름답게 정리된 C 코드들을 보면const
를 자유롭게 활용하고 있는데, 이번 기회를 빌려 정리해보았다.const 자신의 왼편에 있는 키워드를 수식
// const applies to whatever is on its immediate left const int *Constant //Constant is variable pointer to a constant integer int const *Constant // an alternative syntax which does the same things int * const Constant // Constant is constant pointer to a variable integer int const * const Constant // Constant is constant pointer to a constant integer.
리턴값을 변경하지 못하게 만들 때 사용
char *Function() { return "some text"; } Function()[1] = 'a';
만약,
Function()
이const char *
로 선언되었다면 compiler가 두번째 줄에서 error를 출력했을 것이다. 따라서 프로그래머의 실수로 인한 잘못된 접근을 막을 수 있다. 이는 parameter passing에서도 똑같이 응용될 수 있다.내부 멤버 변수를 변경하지 않는 함수라는 의미로의 사용
객체지향프로그래밍에서 클래스 함수에
const
가 포함된다면, 이는 내부 멤버 변수들을 변경하지 않는 함수라는 을 것을 의미한다. 내부 멤버 변수에 접근하는get()
함수 같은걸 생각해보면 된다.class Class2 { void Method1() const; int MemberVariable1; }
이 경우,
Method1()
에서 MemberVariable1을 변경하려고 한다면 컴파일 단계에서 에러가 날 것이다. 주로 programmer가 실수로 인해 의도치 않게 변수값 변경하는 것을 막을 때 사용한다고 할 수 있고, 사용자에게도 클래스 함수의 역할을 명확히 해주는 장점이 있다.