const point variable & default argument in C++
- 개발관련팁
- 2007. 8. 18.
맨날 코딩하다 보면 헷갈리는데..
우선 const point variable에 대해서..
class Widget이 있을 때..
const Widget *p; //object가 const이므로 *p의 내용을 바꿀 수 없음
Widget const* p; //위와 같은 의미
Widget* const p; //pointer 변수가 const이므로, pointer p자체를 바꿀 수 없음 (*p의 내용은 변경가능)
const Widget* const p; //둘 다 const이므로, pointer p, *p object 모두 변경 불가
그리고 default argument (혹은 default variable)는
- non-default argument 뒤에 선언 되어야 함.
ex) int f(int a, int b, int c= 0, int d = 1); - default argument가 function definition에서 다시 정의되면 안됨. 즉, function을 한 번에 정의하지 않고, declaration과 definition으로 나눌 때, 처음 declaration부분에만 default argument를 정의해야 함.
int f(int a, int b = 0); // function declaration
int f(int a, int b) // function definition - default argument 없음
{
//....
}