const point variable & default argument in C++

맨날 코딩하다 보면 헷갈리는데..

우선 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)는

  1. non-default argument 뒤에 선언 되어야 함.
    ex) int f(int a, int b, int c= 0, int d = 1);
  2. 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 없음
    {
         //....
    }

댓글

Designed by JB FACTORY