CHAPTER 01 C++ 기초
1.1 C++ 개요
1.2 객체지향 프로그래밍
1.3 프로그램 개발 과정
1.4 프로그램 개발 전의 준비사항
1.5 C++ 프로그래밍 따라 하기
1.6 소스 코드 분석
1.7 프로그램의 입력과 출력
1.8 응용: Game Over 게임
요약
연습문제
실습문제
CHAPTER 02 프로그래밍 기초
2.1 프로그램의 기본 요소
2.2 변수, 상수, 자료형
2.3 수식과 연산자
2.4 분기와 조건문
2.5 반복문
2.6 응용: 근로소득세 계산
2.7 응용: 시큰둥한 게임
요약
연습문제
실습문제
CHAPTER 03 함수
3.1 함수란?
3.2 함수의 정의와 호출
3.3 함수 원형과 재사용
3.4 함수 중복
3.5 디폴트 매개변수와 인라인 함수
3.6 게임을 위한 라이브러리 함수
3.7 변수의 가시 범위와 생존기간
3.8 응용: 조금 살벌하고 긴장감 있는 게임
요약
연습문제
실습문제
CHAPTER 04 배열, 구조체와 파일
4.1 대용량 자료의 처리
4.2 배열
4.3 배열과 함수
4.4 구조체
4.5 구조체와 함수
4.6 값에 의한 호출
4.7 파일 입출력
4.8 응용: 랭킹 관리 프로그램
4.9 응용: 4×4 퍼즐 게임
요약
연습문제
실습문제
CHAPTER 05 함수의 진화
5.1 포인터
5.2 주소에 의한 호출
5.3 참조형(reference type
5.4 참조에 의한 호출
5.5 심화 학습: 재귀 함수
5.6 심화 응용: 지뢰 찾기 게임
요약
연습문제
실습문제
CHAPTER 06 클래스: 구조체의 진화
6.1 클래스: 구조체의 진화
6.2 객체지향 프로그래밍의 주요 특징
6.3 클래스의 선언과 활용
6.4 사례: Complex의 다양한 변신
6.5 UML 클래스 다이어그램
6.6 응용: 기존 게임의 클래스 변환
6.7 C++ 표준 라이브러리 클래스
6.8 응용: Hangman 게임
요약
연습문
이 책의 구성과 특징
지금까지 많은 C++ 책들이 출간되었는데, 이들은 대부분 문법이나 활용 방법들을 작은 예제를 통해 설명하고 있다. 이들 방법은 단편적인 문법의 이해를 도울 수는 있다. 그러나 실제 문제를 접했을 때 공부한 기능들이 잘 생각나지 않아 문제 해결에 큰 도움을 주지 못한다는 것도 사실이다. 이 책에서는 다음과 같이 좀 새로운 방법을 사용하였다.
- 각 장에서는 먼저 흥미를 유발할 수 있는 게임을 학습 목표로 제시한다. 이들은 이어지는 본문의 내용들을 잘 이해하고 활용한다면 그렇게 어렵지 않게 구현할 수 있는 게임이다. 특별한 게임 엔진이나 그래픽 라이브러리를 사용하지는 않으며 콘솔 응용 프로그램 게임이지만 충분히 흥미를 가질 만한 것들이다.
- 본문에서는 C++의 문법이나 기능, 프로그래밍 기법 등을 핵심적인 내용들만을 뽑아 최대한 쉽게 설명하고 있다. 특히 본문의 내용들이 어떻게 게임 구현에 활용될지를 예상하면서 공부하는 것이 중요하다. 각 장의 뒷부분에는 목표 게임을 구현하는 과정과 소스 코드, 코드에 대한 설명과 고찰 등이 제공된다. 특히 본문에서 공부한 내용들이 어떻게 사용되는지를 강조하려고 하였다.
- 7~14장에서는 “몬스터 월드”란 하나의 게임 주제를 연속해서 다룬다. 첫 번째 몬스터 월드는 게임은 아니지만 많은 유사한 게임에 대한 중요한 아이디어를 제공한다. 이어지는 장들에서 몬스터 객체들을 어떻게 생성하고 소멸하며, 몬스터 월드 맵을 어떻게 구현하고, 상속으로 다양한 몬스터를 어떻게 만들며, 다형성이나 일반화 프로그래밍 기법들이 어떻게 적용될 수 있는지를 공부한다. 이 기법들이 적용됨에 따라 점점 몬스터 월드는 게임으로 변화된다.
- 독자들은 “어떤 게임을 구현할 때, 게임의 어떤 기능을 위해 어떤 문법을 사용했는지”를 기억했으면 좋겠다. 그리고 이것이 이 책을 쓰게 된 가장 중요한 이유이다. 작은 예제를 통해 공부한 다양한 문법보다는 어떤 게임을 구현하기 위해 사용한 기능들이 훨씬 더 기억하기 쉽고 효과적으로