logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

게임 개발자를 위한 C++

게임 개발자를 위한 C++

서진택 (지은이)
  |  
민프레스(민커뮤니케이션)
2003-02-28
  |  
32,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

게임 개발자를 위한 C++

책 정보

· 제목 : 게임 개발자를 위한 C++ 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9788989366133
· 쪽수 : 944쪽

책 소개

C++의 깊이 있는 설명을 학습하는, 그와 함께 게임 프로그래밍을 위해서 필수적인 C++의 기능과 원리들을 함께 배울 수 있는 책이다. 게임 프로그래머라면 한번쯤 배워보았던 C++을 게임 프로그래밍의 관점에서 다시 한번 기초를 다지고 새로운 기술을 익힐 수 있어 유용하다.

목차

Part I 이론

들어가기전에
정수의 크기
이진수, 16진수 및 2의보수
스택(stack) 동작
표현식(expression)
특별한 연산자 [], ()
C++의 메모리 할당 연산자 new 와 delete
함수 포인터( pointer to a function)
심벌 테이블(symbol table)
실습문제

1장 C++의 구조체

좀 더 자연스러운 구조체
실습문제

2장 선언 변경자

변경자의 종류
한정자(qualifier): const와 volatile
변덕장이 mutable
explicit
호출관례(calling conventions)
선언의 예
실습문제

3장 함수이름 오버로딩(function name overloading)

함수 오버로딩이 필요한가?
모호함(ambiguity)
제한점
다른범위(scope)에서의 오버로드
적절한 아규먼트를 가지는 함수찾기
멤버 함수의 오버로드
DWORD에 FLOAT를 라운드오프(round-off) 에러 없이 전달하기
실습문제


4장 기정의 파라미터(default argumnet)

향상된 기교
기정의 파라미터의 표현식(expression)
다른 고려사항
디폴트 생성자에 사용된 디폴트 파라미터
실습문제

5장 참조(reference)와 별명(alias)

별명(alias)
별명이 번역되는 원리
참조에 의한 호출(call by reference)
기우(imagined fears)
참조의 초기화
참조를 리턴하는 함수
진보된 주제
실습문제

6장 new와 delete: 진보된 주제

함수 포인터 배열(array of pointers to functions)의 할당
new/delete의 오버로딩(overloading)
명시적 호출(explicit call)
new/delete의 오버로딩: 배열형식
동적 2차원 배열(1):특별한 포인터
동적 2차원 배열(2): 포인터의 포인터
동적 2차원 배열(3): 연산자 오버로딩
실습문제

7장 함수형 초기화

생성자(constructor)
레퍼런스와 상수의 초기화
베이스 클래스의 생성자 호출과 멤버 객체의 초기화
멤버 객체의 초기화
외워야 할 표(table)
함수형 형 변환(functional casting)
실습문제


8장 클래스 계층도(class hierarchy)를 그리는 법

UML 도구
실습문제

9장 C++ 객체 모델(object model) 그리고 오토마타(automata)!

클래스, 객체 그리고 인스턴스(class, object and instance)
IS-A 관계(is-a relationship)
상속(inheritance)
인스턴스(instance)와 객체: 또 다른 나
불완전한 예
오버라이딩(overriding)
접근 권한의 지정과 변경
접근 선언(access declaration)
외워야 할 표
HAVE-A 관계(have-a relationship)
IS-A vs. HAVE-A
다른 모델, 오토마타(automata)
언제 오토마타를 이용하는가?
오토마타 설계: 예(example)
객체 모델과 오토마타의 결합
다중 상속(multiple inheritance)
실습문제

10장 생성자(constructor), 소멸자(destructor)

new를 사용한 경우의 생성자 호출
생성자의 오버로딩(overloading)
소멸자의 오버로딩?
함축적인 변환(implicit conversion)
생성자와 소멸자는 직접 호출할 수 없다?
explicit: 명시적 생성자 호출
객체 배열(object array)에서 생성자 호출
복사 생성자(copy constructor)
복사 생성자가 호출되는 경우
리턴형의 (void) 형변환
오해(misunderstanding)
베이스 클래스와 멤버 객체의 생성자 호출
생성자와 소멸자의 접근 권한
static 객체 생성자의 특별한 동작
실습문제

11장 범위 해결사(scope resolver)

멤버 함수의 정의
전역과 지역의 구분
정적 멤버의 접근
상속에서 범위 해결
이름공간의 범위표시
실습문제

12장 인라인 함수

보이지 않는 오버헤드: 프리픽스(prefix)와 서픽스(suffix)
매크로 함수 (macro function)
인라인 함수
템플릿(template) 인라인 함수
자동 인라인(automatic inline)
주의사항
인라인배열
실습문제

13장 친구(friends)

친구 클래스: friendship principle
무서운 우정의 원리
실습문제

14장 가상함수

가상(virtual)의 의미
subtype의 원리(subtype principle)
하나의 인터페이스(interface)에 다수의 방법들, 가상함수, 추상클래스,실행시 다형성
순수 가상함수
오버라이딩(overriding)
주의사항: 베이스 클래스의 멤버함수에서의 가상함수의 호출
COM(Component Object Model)
가상 베이스 클래스(virtual base class)
가상 소멸자(virtual destructor)
메시지 맵(message map)
Hello Windows 95!
Pointer to Member operator: .* and ->*
Error: Undeclared Identifier
가상 함수 테이블(VTable: virtual function table): 진보된 주제
외워야 할 표(table)
멤버 함수에 대한 포인터
진보된 주제: 가상 함수 테이블의 원리
주의! 생성자 소멸자에서의 가상함수 호출
다중 상속에서의 가상함수 테이블
실습문제

15장 this 포인터

반드시 this가 필요한 경우
상수 멤버 함수(const member function)와 mutable
실습문제

16장 템플릿(template): 메타(meta) 클래스

명시적 지정(explicit specification)
클래스 템플릿(class template)
디폴트 지정
typename
템플릿 안에 사용된 typedef
미리정의된 Template 파라미터(preparameterized template)
미리 정의된 파라미터를 가지는 템플릿 클래스(preparameterized template class)
진보된 주제: S시(Standard Template Library)
아이터러터(iterator)
진보된 주제: STL 개념 정리
저자와의 대화: 무엇을 공부해야 하는가?
실습문제

17장 연산자 오버로딩(operator overloading)

더 유용한 도구: 오버로딩
왜 에러인가?
새로운 키워드 operator
컴파일러의 입장: 나 피곤해요(^_^)
복사 생성자(copy constructor)
명시적 호출(expliciit call)
불가능의 이유: 친구가 필요하다!
오버로딩 할 수 없는 연산자
형 변환 연산자(type conversion operator)
사용자 정의 형 변환 함수(user defined conversion operator)
다른 예들
[]의 오버로딩: 참조의 리턴
>의 오버로딩
()의 오버로딩
크기를 설정 할 수 있는 행렬
진보된 주제: 펑터(functor)
++의 오버로딩
=의 오버로딩
<<의 오버로딩
콤마(,)의 오버로딩
->의 오버로딩
진보된 주제: ATL(ActiveX Template Library)에 사용된 ->의 오버로딩
new와 delete의 오버로딩
실습문제

18장 Win32 메모리 모델

페이지: 외부 단편화로부터의 해방
가상메모리
Windows98, Windows 2000
그 때 그 시절, 핸들(handle)이 필요했다!
실습문제

19장 존재의 이유

멤버 변수(member variable)의 주소
static에 관한 13가지 진실
마술
토큰(token), 스캐너(scanner)
순수가상함수
디폴트 생성자가 꼭 필요하다!
[]의 오버로딩: 3차원 동적 배열
실습문제

20장 새로운 형태의 형 변환(typecasting)

해결되지 않은 천덕꾸러기 캐스팅(casting)
왜 캐스팅(casting)이 필요한가?
사용자 정의 형 변환
static_cast
downcast
[수정] 하지만, 항상 안전하지 않음
const_cast
dynamic_cast
reinterpret_cast
Type & Tricks
실습문제

21장 RTTI(run-time type information)

왜 이것이 필요한가?
실행시에 객체의 클래스 이름 얻기
매크로의 사용
기우(imagined fear): 잘 사용하지 않는 연사자 ##와 #
#: 스트링화 연산자
##: 토큰(token)연결 연산자
무엇이 좋아졌는가?
동적생성(dynamic creation)을 지원하려면?
어떻게 동적 생성이 가능한가?
매크로 사용 전 소스
매크로 사용 후 소스
매크로와 CRuntimeClass 및 CObject가 “afx.h"에 미리 만들어져 있다고
가정했을때의 소스 코드
새로운 형태의 형변환: 추가된 키워드
새로운 키워드 typeid
typeid의 정체: 진보된 주제
실습문제

22장 이름 공간(namespace)

왜 namespace를 사용하는가?
namespace의 변수를 사용하는 법
using의 범위
클래스 안에서 using의 사용
이름 공간의 별명(alias)
무명 이름공간(anonymous namespace)
전이적(transitive)
실습문제

23장 예외처리(exception handling)

예외(exception)란?
결정(fault)과 오류(error)
고전적인 방법, 최근의 방법
여러 catch 블락, 그래도...안되면...
try안의 try
예외의 제한 및 전파(propagation)
기교(technique)
컴파일러의 입장: Stack Unwinding
표준 예외 처리 클래스(exception handling class)
그래도 없다면!
예외처리의 오버헤드
구조적 예외 처리(SEH : structured exception handling)
실습문제

24장 주의 사항

짧은 평가(Short Circuit)
멤버 변수의 주소
디폴트(default)선언에서의 초기화
스트링 초기화
static과 const의 초기화
다음선택

25장 키워드(keyword)

대체 토큰(alternative token)
키워드(keyword)
연산자와 구두점(operator and punctuator)
리터널
실습문제

26장 Stroustrup과의 실제 인터뷰(The Real Strous trup Interview)

The Real Stroustrup Interview
표준 C++(STANDARD C++)
새로운 기술의 실행가능성(Feasibility of new techniques)
표준 라이브러리(The Standard Library)
복잡성, C++와 객체 지향 프로그래밍(COMPLEXITY, C++ AND OOP)
자바와 C++(JAVA AND C++)
도구(TOOLS)
미래(THE FUTURE)

27장 표준화 유감

using의 기능개선: 객체의 범위 해결
매크로 배열(macro array)
정적 변수와 정적 함수의 참조
실습문제

28장 코딩관례

명칭
장식
메모리 샘 방지
빈 스티링(empty string)과 널 스트링(null string)
복사문제(copying problem)
{의 위치
enum 상수
가상(virtual)
template의 위치
파일
문서화
기타


Part II 게임 활용

1. COM의 이해

COM이란?
C++을 이용한 KBareCom의 설계
C를 이용한 KBareCom의 설계
C와 C++에 독립적으로 KBareCom을 정의하기
COM의 정리
실습문제

2. Functor의 이해

펑터
펑터의 추가적인 이점
실습문제

3. GDI

Win32 코드의 생성
그리는 코드의 추가
Render()하뭇의 설명
실습문제

4. 왜 Matrix인가?

오래된 정의(definition)
왜 normalize된 서로 직각인 세 개의 축인가?
선형변환(linear transformation)
일관된 선형 변환
3차원 벡터 클래스
폴리곤(Polygon, 다각형) 표현
회전 변환과 위치 변환
매트릭스(matrix)클래스
렌더링파이프라인(rendering pipeline)
실습문제


5. 2차원 충돌검사

사각형(rectangle) 충돌의 탐지
선 충돌
다각형 충돌검사
L-시스템(L-system)
문맥 자유 문법(CFG, context free grammar)
예(example)
단계(1-3)
실습문제

6. 알고리즘

용어정의
Rabin-Karp의 스트링 매칭 알고리즘
이차원 패턴 매칭
스트링 거리(String Distance)
타이핑거리(typing distance)
명령 자동 전환기
실습문제

부록

1. Xor 애니메이션
2. 브레즌햄(Bressenham)
3. 배열과의 이혼: 링크리스트(Linked_List)
4. 팔레트 스크롤(Palette Scroll)
5. Double Buffering
6. Stack
7. 참조표(Look-Up Table)
8. 몬테카를로
9. 클래스와 클래스의 계층을 설계하는 방법(HowToDesign)
10 표준 템플릿 라이브러리(STL: standard template library)

저자소개

서진택 (지은이)    정보 더보기
경북대학교 컴퓨터공학과에 입학하여 1996년 ‘컴퓨터바둑’으로 공학석사 학위를 받았다. 박사과정 중에는 DNA 유사성 알고리즘과 관련된 연구를 하고, 1999년 박사과정을 수료하였다. 2000년 게임회사 KOG의 창업에 참여하여 엘소드(Elsword) 등의 온라인게임을 개발하였다. 2015년 회사를 떠나 2016년부터 부산의 동서대학교 International College에서 외국인 유학생들을 대상으로 게임개발을 가르치고 있다. 모태신앙이지만, 대학시절 학과의 성경공부를 통해 하나님을 인격적으로 영접하게 되었다. 대구의 성산교회에서 장립집사 임직을 받은 후, 현재는 부산 가야대로에 있는 성안교회에 두 딸과 함께 출석하고 있다. 알고리즘의 증명 과정과 과학의 명료함을 좋아하며, 신입생을 대상으로 대학수학을 가르치면서 한 수식이 주는 아름다움에 매료되었다. 과학과 우주론에도 관심이 있는 저자는 현대 과학의 관측과 측정 데이터에 대해 환원주의적인 해석을 한 차원을 높이면, 그것이 창조주의 존재를 변증함을 알리고 싶어 한다. 게임서버 관련 논문과 저서 《만화가 있는 C》(성안당), 《게임개발자를 위한 C++》(민프레스), 《MFC의 구조와 원리》(한빛미디어) 등을 집필했다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책