장바구니 담기 close

장바구니에 상품을 담았습니다.

게임으로 배우는 C++

게임으로 배우는 C++

  • 최영규
  • |
  • 생능출판사
  • |
  • 2017-12-07 출간
  • |
  • 680페이지
  • |
  • 190 X 240 mm
  • |
  • ISBN 9788970509365
판매가

32,000원

즉시할인가

31,680

배송비

2,500원

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,680

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

지금까지 많은 C++ 책들이 출간되었는데, 이들은 대부분 문법이나 활용 방법들을 작은 예제를 통해 설명하고 있다. 이들 방법은 단편적인 문법의 이해를 도울 수는 있다. 그러나 실제 문제를 접했을 때 공부한 기능들이 잘 생각나지 않아 문제 해결에 큰 도움을 주지 못한다는 것도 사실이다. 이 책에서는 다음과 같이 좀 새로운 방법을 사용하였다.

- 각 장에서는 먼저 흥미를 유발할 수 있는 게임을 학습 목표로 제시한다. 이들은 이어지는 본문의 내용들을 잘 이해하고 활용한다면 그렇게 어렵지 않게 구현할 수 있는 게임이다. 특별한 게임 엔진이나 그래픽 라이브러리를 사용하지는 않으며 콘솔 응용 프로그램 게임이지만 충분히 흥미를 가질 만한 것들이다.
- 본문에서는 C++의 문법이나 기능, 프로그래밍 기법 등을 핵심적인 내용들만을 뽑아 최대한 쉽게 설명하고 있다. 특히 본문의 내용들이 어떻게 게임 구현에 활용될지를 예상하면서 공부하는 것이 중요하다. 각 장의 뒷부분에는 목표 게임을 구현하는 과정과 소스 코드, 코드에 대한 설명과 고찰 등이 제공된다. 특히 본문에서 공부한 내용들이 어떻게 사용되는지를 강조하려고 하였다.
- 7~14장에서는 “몬스터 월드”란 하나의 게임 주제를 연속해서 다룬다. 첫 번째 몬스터 월드는 게임은 아니지만 많은 유사한 게임에 대한 중요한 아이디어를 제공한다. 이어지는 장들에서 몬스터 객체들을 어떻게 생성하고 소멸하며, 몬스터 월드 맵을 어떻게 구현하고, 상속으로 다양한 몬스터를 어떻게 만들며, 다형성이나 일반화 프로그래밍 기법들이 어떻게 적용될 수 있는지를 공부한다. 이 기법들이 적용됨에 따라 점점 몬스터 월드는 게임으로 변화된다.
- 독자들은 “어떤 게임을 구현할 때, 게임의 어떤 기능을 위해 어떤 문법을 사용했는지”를 기억했으면 좋겠다. 그리고 이것이 이 책을 쓰게 된 가장 중요한 이유이다. 작은 예제를 통해 공부한 다양한 문법보다는 어떤 게임을 구현하기 위해 사용한 기능들이 훨씬 더 기억하기 쉽고 효과적으로 활용될 수 있을 것이라 생각하기 때문이다.
- 각 장의 뒷부분에는 하나의 “QnA”와 “요약”, “연습문제”와 “실습문제”를 제공한다. QnA의 질문들에는 “정답”이 없다. 필자의 의견을 참고하여 각자 생각하고 토론해 보면 좋겠다. “요약”은 괄호 채우기 문제로 구성했는데, 해답을 제공하지만 답을 보지 않고 각 장을 정리해보면 좋을 것이다. “연습문제”는 간단히 답할 수 있는 문제들이며, “실습문제”는 책에서 설명된 게임을 확장하거나 실습 과제로 활용할 수 있는 문제들을 제공한다.

이 책은 기본적으로 C언어를 공부한 독자들을 대상으로 하지만, C언어의 경험이 없더라고 2~5장의 내용에 더 많은 시간을 할애한다면 충분히 학습하고 활용할 수 있으리라 생각한다. 또한, C++의 복잡한 문법이 아니라 제시된 게임을 구현하기 위해 기본적이고 실용적인 부분들을 중심으로 구성하였다. 그리고 Java와 같은 대부분의 객체지향 언어에서 공통적으로 사용하는 기법들을 중심으로 설명하고자 하였다. 대부분의 멤버 함수를 인라인으로 구현해 코드의 시각적인 복잡함을 줄이려고 노력했고, 압축적인 형태의 코드에는 충분한 설명을 추가하였다.

목차

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 게임
요약
연습문제
실습문제

CHAPTER 07 객체의 생성과 소멸
7.1 객체의 생성과 소멸을 도와주는 함수
7.2 생성자
7.3 멤버 초기화 리스트
7.4 소멸자
7.5 생성자와 소멸자의 호출 순서
7.6 객체의 복사와 복사 생성자
7.7 함수의 설계와 객체의 복사
7.8 응용: MonsterWorld
요약
연습문제
실습문제

CHAPTER 08 객체와 포인터
8.1 객체와 포인터
8.2 동적 메모리 할당과 해제
8.3 객체의 얕은 복사 문제
8.4 동적 메모리와 깊은 복사
8.5 this 포인터
8.6 정적 멤버
8.7 심화 응용: 2차원 배열의 동적 할당
8.8 응용: MonsterWorld 2: 조절되는 세상
요약
연습문제
실습문제

CHAPTER 09 상속
9.1 클래스의 상속
9.2 상속의 방법과 접근 지정자
9.3 상속에서의 생성자와 소멸자
9.5 멤버의 재정의
9.5 응용: 그래픽 에디터
9.6 다중 상속
9.7 응용: MonsterWorld 3: 세상의 모든 귀신
요약
연습문제
실습문제

CHAPTER 10 다형성
10.1 다형성이란?
10.2 응용: 상호작용이 가능한 그래픽 에디터
10.3 상속에서의 형 변환
10.4 가상 함수와 동적 바인딩
10.5 상속에서의 객체 크기
10.6 가상 소멸자
10.7 응용: MonsterWorld 4: 실행시간 다형성
10.8 순수 가상 함수와 추상 클래스
10.9 응용: MonsterWorld 5: 신인류의 탄생
요약
연습문제
실습문제

CHAPTER 11 프렌드와 연산자 중복
11.1 프렌드 선언
11.2 연산자 중복
11.3 연산자 중복의 종류
11.4 특별한 연산자 중복
11.5 깊은 복사와 연산자 중복
11.6 응용: MonsterWorld 6: 여유 있는 삶
요약
연습문제
실습문제

CHAPTER 12 예외 처리와 형 변환
12.1 예외 처리란?
12.2 C++의 예외 처리 방법
12.3 예외 클래스를 만들어 사용하기
12.4 예외의 전달
12.5 응용: MonsterWorld 7: 새로운 경쟁의 시작
12.6 const 지시자
12.7 형 변환
요약
연습문제
실습문제

CHAPTER 13 템플릿
13.1 일반화 프로그래밍
13.2 함수 템플릿
13.3 클래스 템플릿
13.4 응용: 벡터 템플릿(심화학습)
13.5 응용: MonsterWorld 8: 벡터로 만든 세상
요약
연습문제
실습문제

CHAPTER 14 표준 템플릿 라이브러리
14.1 표준 템플릿 라이브러리
14.2 STL의 구성요소
14.3 순차 컨테이너
14.4 컨테이너 어댑터
14.5 연관 컨테이너
14.6 STL 알고리즘
14.7 응용: MonsterWorld 9: 실시간 순위 갱신
요약
연습문제
실습문제

[부록] 아스키코드 표

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.