템플릿 클래스 1 2 3 4 5 6 7 8 9 class Stakc { private: int top; public: Stack(); bool push(long item); long pop(); }; cs 위 코드는 long 형만 스택에 저장할 수 있지만, 아래처럼 템플릿 클래스로 변경하면 어떤 자료형도 스택에 저장할 수 있다. 1 2 3 4 5 6 7 8 9 10 template class Stakc { private: int top; public: Stack(); bool push(Type item); Type pop(); }; cs
map.PGetFirstAssoc() 사용시 주의하기 map에 저장된 데이터가 없을때 PGetFirstAssoc() 호출하면 예외발생하므로 map에 저장된 데이터가 있는지 확인하고 호출하거나 POSITION pos = map.GetStartPosition() 으로 바꿔 사용한다. 1 2 3 4 5 6 7 8 9 10 CMapStringToString m_map; CMapStringToString::CPair* pCurVal = m_map.PGetFirstAssoc(); // 데이터 없으면 예외 발생함. CString str코드; while (pCurVal != NULL) { str코드 = pCurVal->key; ... pCurVal = m_map.PGetNextAssoc(pCurVal); } Color..
const 는 왼쪽에 있는 것을 상수화 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 int* ip; ip = new int[10]; ip[4]= 5; int const* ip; // 왼쪽에 있는 int 를 상수화 ip = new int[10]; ip[4] = 5; // int 값을 변경할 수 없어 컴파일 에러 int* const ip = nullptr; // 왼쪽에 있는 * 를 상수화 ip = new int[10]; // * 값을 변경할수 없어 컴파일 에러 ip[4] = 5; // 컴파일 에러, null 포인터에 대한 역참조 int* const ip = new int[10]; // 왼쪽에 있는 * 를 상수화 ip[4]= 5; int const* ..
함수의 전달 인수에 기본값을 지정할때는 반드시, 기장 오른쪽 인수부터 시작하고, 건너뜀 없이 사용해야 한다. 옳은 예> A(int a, int b, int c = 0); A(int a, int b = 0, int c = 0); A(int a = 0, int b = 0, int c = 0); 틀린 예> A(int a = 0, intb, int c); // 우측 부터 사용해야한다 A(int a, int b = 0, int c); // 우측 부터 사용해야한다 A(int a = 0, int b, int c = 0); // 우측 부터 건너뛰기 없어야 한다 (b 건너뜀)