목차 서문 6 1장 파일 구조 11 1.1 저작권 및 버전 설명 11 1.2 헤더 파일의 구조 12 1.3 정의 파일 구조 13 1.4 헤더 파일의 역할 13 1.5 디렉토리 구조 14 2장 프로그램 레이아웃 15 2.1 빈 줄 15 2.2 코드 16행 2.3 code17 줄 내 공백 2.4 정렬18 2.5 긴 줄 나누기 19 2.6 수식어의 위치 19 2.7 참고 20 2.8 클래스 레이아웃 21 3장 명명 규칙 22 3.1 공통 규칙 22 3.2 간단한 WINDOWS 애플리케이션 명명 규칙 23 3.3 간단한 UNIX 애플리케이션 명명 규칙 25 Chapter 4 표현식과 기본문 26 4.1 연산자 우선순위 26 4.2 복합 표현식 27 4.3 IF 문 27 4.4 루프문의 효율성 29 4.5 FOR 문의 루프 제어 변수 30 4.6 SWITCH 문 30 4.7 GOTO 문 31 제5장 상수 33 5.1 상수가 필요한 이유 33 5.2 CONST 대 #DEFINE 33 5.3 상수 정의 규칙 33 5.4 클래스 34의 상수 제6장 기능 설계 36 6.1 매개변수에 대한 규칙 36 6.2 반환 값에 대한 규칙 37 6.3 내부 기능 구현 규칙 39 6.4 기타 제안사항 40 6.5 어설션 사용하기 41 6.6 참조와 포인터의 비교 42 7장 메모리 관리 44 7.1 메모리 할당 방법 44 7.2 일반적인 메모리 오류와 그 대책 44 7.3 포인터와 배열의 비교 45 7.4 포인터 매개변수는 어떻게 메모리를 전송하나요? 47 7.5 FREE와 DELETE를 사용한 포인터는 어떻게 되나요? 50 7.6 동적 메모리는 자동으로 해제되나요? 50 7.7 "와일드 포인터" 제거 51 7.8 MALLOC/FREE가 있는데 왜 NEW/DELETE가 필요한가요? 52 7.9 메모리가 부족하면 어떻게 해야 합니까? 53 7.10 MALLOC/FREE 54 사용 시 핵심 사항 7.11 NEW/DELETE 사용 시 핵심 사항 55 7.12 몇 가지 통찰 56 8장 C++ 함수의 고급 기능 57 8.1 함수 오버로딩의 개념 57 8.2 멤버 함수 오버로딩, 오버라이딩, 숨기기 60 8.3 매개변수의 기본값 63 8.4 연산자 오버로딩 64 8.5 함수 인라인 65 8.6 몇 가지 통찰 68 9장 생성자, 소멸자, 클래스 할당 함수 69 9.1 생성자와 소멸자의 기원 69 9.2 생성자 70의 초기화 테이블 9.3 건설 및 파괴 순서 72 9.4 예: STRING 72 클래스의 생성자와 소멸자 9.5 복사 생성자와 할당 함수를 과소평가하지 마세요 9.6 예: STRING 클래스의 복사 생성자와 할당 함수 73 9.7 복사 생성자와 할당 함수를 다루는 게으른 방법 75 9.8 파생 클래스에서 클래스의 기본 기능을 구현하는 방법 75 9.9 몇 가지 통찰 77 10장 클래스 상속과 구성 78 10.1 상속 78 10.2 조합 80 11장 기타 프로그래밍 경험 82 11.1 CONST를 사용하여 함수 견고성 향상 82 11.2 프로그램 효율성 향상 84 11.3 몇 가지 유용한 제안 85 참고문헌 87 부록 A: C++/C 코드 검토 양식 88 부록 B: C++/C 테스트 문제 93 부록 C: C++/C 시험 문제의 답변 및 채점 기준 97