노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


 Effective C++ 목차




목차

Chapter 1. C++에 왔으면 C++의 법을 따릅시다.
 항목 1. C++를 언어들의 연합체로 바라보는 안목은 필수
 항목 2. #define을 쓰려거든 const, enum, inline을 떠올리자.  - #define 컴파일 에러시 디버깅 어려움
 항목 3. 낌새만 보이면 const를 들이대 보자! - const 외부 변경 불가능
 항목 4. 객체를 사용하기 전에 반드시 그 객체를 초기화하자.
 

 Chapter 2. 생성자, 소멸자 및 대입 연산자
 항목 5. C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자.
 항목 6. 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자.
 항목 7. 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자.
 항목 8. 예외가 소멸자를 떠나지 못하도록 붙들어 놓자.
 항목 9. 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자.
 항목 10. 대입 연산자는 *this의 참조자를 반환하게 하자.
 항목 11. operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자.
 항목 12. 객체의 모든 부분을 빠짐없이 복사하자.
 

 Chapter 3. 자원 관리
 항목 13. 자원 관리에는 객체가 그만!
 항목 14. 자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자.
 항목 15. 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자.
 항목 16. new 및 delete를 사용할 때는 형태를 반드시 맞추자.
 항목 17. new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자.
 

 Chapter 4. 설계 및 선언
 항목 18. 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자.
 항목 19. 클래스 설계는 타입 설계와 똑같이 취급하자.
 항목 20. '값에 의한 전달'보다는 '상수객체 참조자에 의한 전달' 방식을 택하는 편이 대게 낫다.
 항목 21. 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자.
 항목 22. 데이터 멤버가 선언될 곳은 private 영역임을 명심하자.
 항목 23. 멤버 함수보다는 비멤버 비프렌드 함수와 더 가까워지자.
 항목 24. 타입 변환이 모든 매개변수에 대해 적용되어야 한다면 비멤버 함수를 선언하자.
 항목 25. 예외를 던지지 않는 swap에 대한 지원도 생각해보자.
 

 Chapter 5. 구현 
 항목 26. 변수 정의는 늦출 수 있는 데 까지 늦추는 근성을 발휘하자.
 항목 27. 캐스팅은 절약, 또 절약! 잊지 말자.
 항목 28. 내부에서 사용하는 객체에 대한 "핸들"을 반환하는 코드는 되도록 피하자.
 항목 29. 예외 안전성이 확보되는 그날 위해 싸우고 또 싸우자!
 항목 30. 인라인 함수는 미주알고주알 따져서 이해해 두자.
 항목 31. 파일 사이의 컴파일 의존성을 최대로 줄이자.
 

 Chapter 6. 상속, 그리고 객체 지향 설계 
 항목 32. public 상속 모형은 반드시 "is-a"를 따르도록 만들자.
 항목 33. 상속된 이름을 숨기는 일은 피하자.
 항목 34. 인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자.
 항목 35. 가상 함수 대신 쓸 것들도 생각해 두는 자세를 시시때때로 길러 두자.
 항목 36. 상속받은 비가상 함수를 파생 클래스에서 재정의하는 것은 절대 금물!
 항목 37. 어떤 함수에 대해서도 상속받은 기본 매개변수 값은 절대로 재정의하지 말자.
 항목 38. "has-a" 혹은 "is-implemented-in-terms-of"를 모형화 할때는 객체 합성을 사용하자.
 항목 39. private 상속은 심사숙고해서 구사하자.
 항목 40. 다중 상속은 심사숙고해서 사용하자.
 

 Chapter 7. 템플릿과 일반화 프로그래밍
 항목 41. 템플릿 프로그래밍의 천릿길도 암시적 인터페이스와 컴파일 타임 다형성부터
 항목 42. typename의 두 가지 의미를 제대로 파악하자.
 항목 43. 템플릿으로 만들어진 기본 클래스 안의 이름에 접근하는 방법을 알아 두자.
 항목 44. 매개변수에 독립적인 코드는 템플릿으로부터 분리시키자.
 항목 45. "호환되는 모든 타입"을 받아들이는 데는 멤버 함수 템플릿이 직방!
 항목 46. 타입 변환이 바람직할 경우에는 비멤버 함수를 클래스 템플릿 안에 정의해 두자.
 항목 47. 타입에 대한 정보가 필요하다면 특성정보 클래스를 사용하자.
 항목 48. 템플릿 메타프로그래밍, 하지 않겠는가?
 

 Chapter 8. new와 delete를 내 맘대로
 항목 49. new 처리자의 동작 원리를 제대로 이해하자.
 항목 50. new 및 delete를 언제 바꿔야 좋은 소리를 들을지를 파악해 두자.
 항목 51. new 및 delete를 작성할 때 따라야 할 기존의 관례를 잘 알아 두자.
 항목 52. 위치지정 new를 작성한다면 위치지정 delete도 같이 준비하자.

  Chapter 9. 그 밖의 이야기들
 항목 53. 컴파일러 경고를 지나치지 말자.
 항목 54. TR1을 포함한 표준 라이브러리 구성요소와 편안한 친구가 되자.
 항목 55. Boo자유친! 부스트를 늘 여러분 가까이에
 


http://kelly.springnote.com/pages/552442

블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,