맨날 코딩하다 보면 헷갈리는데.. 우선 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,..
built-in C++ type class가 아닌 직접 만든 class를 사용할 때 다음과 같은 operator들을 overloading을 해 주어야 sort와 같은 알고리즘을 적용시킬 수 있다. Copy-constructor Assignment(=) operator: list에서 새로운 순서로 생성한 member들을 할당하기 위해 Less than (
막상 쓰려니 헷갈려서.. 책을 찾아서 정리함. //static data member들은모든block의밖에서define 되어야한다 //모든block의밖에서define되는static data memeber들은따로초기화값을주지않으면 //자동으로0으로초기화된다. class Widget { static int n; //declaration }; int Widget::n = 0; //definition //const data member들은constructor's initialization section에서초기화가되어야한다. //member initialization list class Widget { public: Widget() : n( 0 ) { } private: const int n; //const dat..