이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
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: 실시간 순위 갱신 요약 연습문제 실습문제 [부록] 아스키코드 표
|
崔濚圭
|
이 책의 구성과 특징지금까지 많은 C++ 책들이 출간되었는데, 이들은 대부분 문법이나 활용 방법들을 작은 예제를 통해 설명하고 있다. 이들 방법은 단편적인 문법의 이해를 도울 수는 있다. 그러나 실제 문제를 접했을 때 공부한 기능들이 잘 생각나지 않아 문제 해결에 큰 도움을 주지 못한다는 것도 사실이다. 이 책에서는 다음과 같이 좀 새로운 방법을 사용하였다.- 각 장에서는 먼저 흥미를 유발할 수 있는 게임을 학습 목표로 제시한다. 이들은 이어지는 본문의 내용들을 잘 이해하고 활용한다면 그렇게 어렵지 않게 구현할 수 있는 게임이다. 특별한 게임 엔진이나 그래픽 라이브러리를 사용하지는 않으며 콘솔 응용 프로그램 게임이지만 충분히 흥미를 가질 만한 것들이다.- 본문에서는 C++의 문법이나 기능, 프로그래밍 기법 등을 핵심적인 내용들만을 뽑아 최대한 쉽게 설명하고 있다. 특히 본문의 내용들이 어떻게 게임 구현에 활용될지를 예상하면서 공부하는 것이 중요하다. 각 장의 뒷부분에는 목표 게임을 구현하는 과정과 소스 코드, 코드에 대한 설명과 고찰 등이 제공된다. 특히 본문에서 공부한 내용들이 어떻게 사용되는지를 강조하려고 하였다.- 7~14장에서는 “몬스터 월드”란 하나의 게임 주제를 연속해서 다룬다. 첫 번째 몬스터 월드는 게임은 아니지만 많은 유사한 게임에 대한 중요한 아이디어를 제공한다. 이어지는 장들에서 몬스터 객체들을 어떻게 생성하고 소멸하며, 몬스터 월드 맵을 어떻게 구현하고, 상속으로 다양한 몬스터를 어떻게 만들며, 다형성이나 일반화 프로그래밍 기법들이 어떻게 적용될 수 있는지를 공부한다. 이 기법들이 적용됨에 따라 점점 몬스터 월드는 게임으로 변화된다.- 독자들은 “어떤 게임을 구현할 때, 게임의 어떤 기능을 위해 어떤 문법을 사용했는지”를 기억했으면 좋겠다. 그리고 이것이 이 책을 쓰게 된 가장 중요한 이유이다. 작은 예제를 통해 공부한 다양한 문법보다는 어떤 게임을 구현하기 위해 사용한 기능들이 훨씬 더 기억하기 쉽고 효과적으로 활용될 수 있을 것이라 생각하기 때문이다.- 각 장의 뒷부분에는 하나의 “QnA”와 “요약”, “연습문제”와 “실습문제”를 제공한다. QnA의 질문들에는 “정답”이 없다. 필자의 의견을 참고하여 각자 생각하고 토론해 보면 좋겠다. “요약”은 괄호 채우기 문제로 구성했는데, 해답을 제공하지만 답을 보지 않고 각 장을 정리해보면 좋을 것이다. “연습문제”는 간단히 답할 수 있는 문제들이며, “실습문제”는 책에서 설명된 게임을 확장하거나 실습 과제로 활용할 수 있는 문제들을 제공한다.이 책은 기본적으로 C언어를 공부한 독자들을 대상으로 하지만, C언어의 경험이 없더라고 2~5장의 내용에 더 많은 시간을 할애한다면 충분히 학습하고 활용할 수 있으리라 생각한다. 또한, C++의 복잡한 문법이 아니라 제시된 게임을 구현하기 위해 기본적이고 실용적인 부분들을 중심으로 구성하였다. 그리고 Java와 같은 대부분의 객체지향 언어에서 공통적으로 사용하는 기법들을 중심으로 설명하고자 하였다. 대부분의 멤버 함수를 인라인으로 구현해 코드의 시각적인 복잡함을 줄이려고 노력했고, 압축적인 형태의 코드에는 충분한 설명을 추가하였다.
|