C++의 내용은 책 한 권으로 설명하기가 어렵다. 그만큼 복잡하다는 말이다. 따라서 단계적으로 배워야 하며 처음부터 한꺼번에 배우려고 욕심을 부리면 금새 지쳐버린다. 이 책은 C++ 전체를 다루는 것이 아니라 C++ 특징들 중 일부분만을 다루고 있다. 선정된 일부분은 C++의 핵심적인 특징들로 이루어져 있는데, 만약 이 부분들이 없다면 C++이라고 할 수가 없다. C++을 처음 시작하는 사람들도 선별된 일부분을 이용하여 C++ 언어의 기초 부분을 쉽게 이해할 수 있다.
1장에서 5장까지는 C++이 발명된 이유인 객체지향 프로그래밍에 대해 개략적으로 설명하며, 일반적인 프로그래밍을 더 쉽게 할 수 있는 C++의 일부 특징들, C++의 핵심인 클래스, 클래스 내의 데이터와 함수들에 대한 액세스 제어, C++ 코드의 재사용, 객체의 생성과 소멸 등을 설명한다.
6장에서 7장까지는 C++에서 제공하는 메모리 관리 메커니즘, 참조, 특별한 목적의 멤버 함수 등을 설명한다.
11장에서는 C의 매크로와 비슷하지만 더 안전하고 강력한 템플릿을 설명하고, 12장부터 14장까지는 가상 함수, 다형성, 객체지향 설계 등을 설명한다.
15장에서는 C++의 특징들을 담고 있는 예제 프로그로그램을 보여주며, 16장에서는 앞으로 C++에 대한 학습을 어떻게 이어가야 하는가를 제시한다.
저자
목차
1장. 클래스를 이용한 객체지향 프로그래밍
객체지향 프로그래밍
클래스
2장. 클래스를 제외한 C++
기초적인 세 가지 특징
함수의 변화
엄격해진 자료형
전역 변수의 동적 초기화
몇 가지 세부 사항
3장. 멤버 함수를 이용한 추상화
추상화
구조체를 이용한 추상화
인터페이스 함수와 구조체를 이용한 추상화
멤버 함수의 클래스를 이용한 추상화
4장. 액세스 지정자를 이용한 캡슐화
액세스 지정자
멤버는 모든 액세스 레벨을 가질 수 있다
제한 없는 액세스 지정자
private은 보이지 않는다는 것만을 의미하지는 않는다
friend 클래스
5장. 구성과 유도
구성
유도
연쇄 작업
6장. 생성자와 소멸자를 이용한 향상된 추상화
디폴트 생성자
소멸자
내장형
계층성과 연쇄 작업
암시적인 디폴트 생성자와 소멸자
연쇄 작업 외
명시적인 구동
제어 흐름
구동되는 시기
7장. new와 delete를 이용한 추상화
동적인 객체
동적인 배열
할당의 혼용
realloc()
메모리 부족
8장. 참조
매개변수와 인자
C와 C++에서의 값에 의한 전달
C++에서의 참조에 의한 전달
참조 대 포인터
C++에서의 참조에 의한 리턴
겹지정: 참조 대 값
참조를 변수와 엮을 때의 문제점
9장. 다른 특별한 멤버 함수를 이용한 향상된 추상화
대입 연산자
복사 생성자
객체 출력
요약
10장. 예제 클래스
int 형 사용
정적 배열 사용
동적 배열 사용
문자열이 참조된 횟수 사용
복사 생성자에 대한 퀴즈
요약표
11장. 템플릿을 이용한 향상된 계층성
템플릿의 정의
객체의 정의를 위한 템플릿의 사용
전개에서 주의할 점
컨테이너 클래스 요소의 수정
12장. 가상 함수를 이용한 다형성
C에서의 다형성
가상 함수
C++에서의 다형성
가상 함수에 대한 좀더 많은 것들
13장. 다형성에 대한 그 이상의 특징들
추상 클래스
유도의 결정
가상 함수의 결정
생성자와 소멸자로부터 가상 함수 호출
가려진 것
함정들
14장. 객체지향 설계의 구현
구현에 관한 표
예제
Is-A, Has-A
방어적인 구현
15장. 예제 프로그램
String 클래스
Rule, CwRule, HwRule 클래스
Scanner 클래스
프로그램의 이용
예제 코드
16장. 다음에 학습해야 할 것들 const
inline
매개변수를 가지는 생성자들
멤버의 초기화 리스트
효율적인 복사 생성자
특별한 멤버 함수들