부재 : 가급적 선행 처리자보다 컴파일러를 더 가까이 하자.
이유
1. 컴파일러는 #define을 알아차리지 못하기 때문에, 디버그가 힘들어지기 때문이다.
주의점
1. const로 상수화 시킬때 포인터라면 데이터와 포인터 역시 막아야 한다.
- const char * const authorname = "Scott Meyers";
2. 클래스 상수 멤버상수는 static const int a = 5; 로 사용 하면 좋다.
3. 클래스를 컴파일 도중 클래스 상수(클래스에서만 쓰일) 값이 필요하다면 enum을 사용 하는게 좋다.
- enum에 대한 참조자를 갖지 못한다.
- 메모리를 사용하지 않는다.
4. #define 함수는 잦은 버그가 있기 때문에 inline함수를 하면 더 좋다.
이것만은 잊지 말자!
1. 단순한 상수를 쓸때는 const 객체 or enume을 우선 적용 할수 있는지 생각한다.
2. #define 함수보다는 inline함수를 우선 적용 할수 있는지 생각해 본다.
개인적인 생각
1. 1항목으로 비추어 볼때, 어느 개념에서나 쓸수 있을것으로 판단된다.
관련링크
http://ikpil.tistory.com/282
http://nbloger.net/2690082
이유
1. 컴파일러는 #define을 알아차리지 못하기 때문에, 디버그가 힘들어지기 때문이다.
주의점
1. const로 상수화 시킬때 포인터라면 데이터와 포인터 역시 막아야 한다.
- const char * const authorname = "Scott Meyers";
2. 클래스 상수 멤버상수는 static const int a = 5; 로 사용 하면 좋다.
3. 클래스를 컴파일 도중 클래스 상수(클래스에서만 쓰일) 값이 필요하다면 enum을 사용 하는게 좋다.
- enum에 대한 참조자를 갖지 못한다.
- 메모리를 사용하지 않는다.
4. #define 함수는 잦은 버그가 있기 때문에 inline함수를 하면 더 좋다.
이것만은 잊지 말자!
1. 단순한 상수를 쓸때는 const 객체 or enume을 우선 적용 할수 있는지 생각한다.
2. #define 함수보다는 inline함수를 우선 적용 할수 있는지 생각해 본다.
개인적인 생각
1. 1항목으로 비추어 볼때, 어느 개념에서나 쓸수 있을것으로 판단된다.
관련링크
http://ikpil.tistory.com/282
http://nbloger.net/2690082
'책 정리 > Effective C++ 3판' 카테고리의 다른 글
항목 9: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (0) | 2008.05.31 |
---|---|
항목 8: 예외가 소멸자를 떠나지 못하도록 붙들어 놓자. (0) | 2008.05.31 |
항목 7: 다향성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 (0) | 2008.05.31 |
항목 6: 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자 (0) | 2008.05.31 |
항목 5: C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자. (0) | 2008.05.31 |
항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자. (0) | 2008.05.31 |
항목 3. 낌새만 보이면 const를 들이대 보자! (0) | 2008.05.29 |
항목 1. C++를 언어들의 연합체로 바라보는 안목은 필수 (0) | 2008.05.29 |
Effective C++ 3판을 공부하기에 앞서... (0) | 2008.05.29 |
Effective C++ 3판 3rd 목차 및 링크 (3) | 2008.05.29 |
최근댓글