함수 파라미터의 const는 어디까지 붙여줘야 할까요?
조회수 4936회
const
를 얼마나 써야 하는 걸까요?
안 변하는 변수에는 다 써야 하는 걸까요?
한 줄짜리 코드에도??
void printValue(const bool b) { cout << b << endl; }
이렇게 쓰는 게 진짜 뭔가 도움이 되나요??
저는 보통 const
를 되게 많이 쓰는데, 요즘은 이거 왜 쓰지.. 이런 생각이 들어요
그리고 다른 사람이 짠 코드 중에서(밑의 소스코드같이)
함수 선언에는 const
를 안 쓰고
정의에만 const
적어놓은 것도 있던데 왜 그러는 건가요?
소스코드
/* .h file */
void func(int n, long l);
/* .cpp file */
void func(const int n, const long l)
1 답변
-
선언에는
const
없이, 정의에만const
를 쓰는 이유는const parameter
가 그 함수 안에서만const
로 쓰이기 때문입니다.즉,
void myPrint(const int a){ cout << a << endl; } ... int val = 5; myPrint(val)
과 같은 코드에서
val
은const
가 아니지만val
의 값을 복사받는a
만const
라는 의미입니다. 포인터라면 다르겠지만, 보통 이런 상황에서는const
가 있고, 없고는 그렇게 큰 역할을 하지 않습니다.그래도 별로 좋은 코드는 아니니까 쓰지 않는 게 좋아요
제 경우에는 레퍼런스나 포인터, 반복문의 iterator가 아니면
const
는 잘 안 붙입니다.call by value
에서는 값이 복사될 뿐 원본은 유지되니까요.const
를 붙이는 게 더 안전하고 확실한 방법이겠지만 혼자쓰는 코드라면 저는 편한 대로 쓰는 게 좋다고 생각해요여러 명이서 작업하는 경우엔 꼭
const
를 붙여주세요. !!!동료를 믿지 마세요!!!
댓글 입력