책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9788972804253
· 쪽수 : 280쪽
· 출판일 : 2005-03-01
책 소개
목차
C에서 C++로의 전환
항목 1 #define보다는 const와 inline을 사용한다
항목 2 stdio.h 보다는 iostream을 사용한다.
항목 3 malloc과 free보다는 new와 delete를 사용한다.
항목 4 C++ 스타일의 주석을 지향한다.
메모리 관리
항목 5 new와 delete의 사용시 동일한 형식을 이용한다
항목 6 소멸자에서 포인터 멤버에 대해 delete를 이용한 다.
항목 7 메모리가 모자랄 경우에 대비한다.
항목 8 operator new와 operator delete 작성시 관례를 따른다.
항목 9 new의 "정상" 형식을 감추지 않는다.
항목 10 operator new를 작성한다면 operator delete도 작성한다.
생성자, 소멸자, 그리고 치환 연산자
항목 11 동적으로 할당되는 메모리를 갖는 클래스를 위해서는 복사 생성자와 치환 연산자를 선언하라.
항목 12 생성자에서 치환보다는 초기화를 사용한다.
항목 13 클래스에 선언된 순서에 따라 멤버 초기화 리스트에 멤버들을 나열한다.
항목 14 베이스 클래스에서 소멸자는 가상 함수로 선언해야 한다.
항목 15 operator=이 *this에 대한 레퍼런스(reference)를 리턴(Return)하도록 한다.
항목 16 operator=에서 모든 데이터 멤버들로의 치환을 수행한다.
항목 17 operator=에서 재귀치환을 검사한다.
클래스와 함수: 설계 및 선언
항목 18 최소한의 완전한 클래스 인터페이스를 추구한 다.
항목 19 멤버 함수, 비멤버 함수 및 프렌드 함수를 구별한다.
항목 20 데이터 멤버를 공용 인터페이스에 포함시키지 않는다.
항목 21 가능한 const를 이용한다.
항목 22 값에 의한 호출보다는 레퍼런스에 의한 호출을 선호한다.
항목 23 객체 반환시 레퍼런스를 반환하지 않는다.
항목 24 함수 오버로딩과 디폴트 인자값 중에서 주의깊 게 선택한다.
항목 25 포인터나 수치형 타입상의 오버로딩을 피한다.
항목 26 잠재적 모호성을 경계한다.
항목 27 의도하지 않은 내부 생성 멤버 함수의 이용을 명시적으로 막는다.
항목 28 전역 네임스페이스를 분할한다.
클래스와 함수: 구현
항목 29 내부 데이터에 대한 "핸들"을 리턴하는 것을 피해라.
항목 30 접근하기 어려운 멤버에 대한 비상수 포인터나 레퍼런스를 리턴하는 멤버 함수 사용을 피하라.
항목 31 지역 객체에 대한 참조나 함수 내에서 new를 이용해 초기화된 포인터를 가리키는 참조를 리턴하지 말라.
항목 32 변수 정의는 가능한 뒤로 늦춰라.
항목 33 인라인을 선별적으로 사용하라.
항목 34 파일간의 컴파일 의존성(dependency)을 최소화하라.
인스턴스와 객체지향 설계
항목 35 public 계승이 "isa"를 모델링하도록 하라.
항목 36 인터페이스 계승과 구현 계승의 차이점을 이해하라.
항목 37 계승된 비가상 함수를 재정의하지 않도록 한다.
항목 38 계승된 부재 인자값을 재정의하지 않도록 한다.
항목 39 계층도의 아래쪽 클래스로 다운캐스트(downcast )하지 않도록 한다.
항목 40 레이어링(layering)을 통해 "가지고 있는" 것과 "사용하여 구현된" 것을 모델링하도록 한다.
항목 41 계승과 템플릿과의 차이점을 이해한다.
항목 42 private 계승을 바르게 사용하라.
항목 43 다중 계승을 바르게 사용하도록 하라.
항목 44 의미하는 바를 표현하도록 하라; 자신이 표현한 것의 의미를 이해하도록 하라.
미묘한 부분
항목 45 C++가 은밀하게 어떤 함수를 만들어주고 호출 하는지 이해하기
항목 46 실행 시간 에러보다는 컴파일 시간과 링크 시간 에러가 좋다.
항목 47 비지역 정적(Non-local static) 객체는 사용되기 전에 초기화되도록 해야 한다.
항목 48 컴파일러의 경고(warning)에 주의를 기울여라.
항목 49 표준 라이브러리를 잘 알아두어라.
항목 50 C++에 대한 이해를 넓혀라.



















