최신버전인 C++14가 반영된 본문
C++11부터는 많은 부분에서 간편하고 직관적으로 프로그래밍이 변화되었다. 예를 들어 변수를 초기화하는 경우 과거 혼란의 극치였던 초기화방법이 통일되었다. 즉 그동안 초기화 방법이 너무 많았던 것이다. C++11부터 이것들이 모두 통일되었고 직관적이 되었다. 이 책은 최신의 C++14를 반영한다.
SFML을 사용한 게임 프로젝트
SFML은 OpenGL에 기반을 둔 쉽고 가벼운 라이브러리이다. 여러 플랫폼에서 실행이 가능하고 게임이나 멀티미디어 응용 프로그램 제작에 사용할 수 있다. 이것을 사용하면 라이브러리가 객체 지향으로 설계될 때 굉장히 유용할 수 있다는 사실을 깨달을 수 있다. 이 책에서는 7장과 16장에 걸쳐 'Lunar Lander', '벽돌깨기', '지뢰찾기'게임을 실행해 볼 것이다.
핵심적인 개념에 대한 자세한 해설
'캡슐화', '정보 은닉', '다형성'과 같은 개념은 C++에서 핵심적인 개념들이다. 이 책에서는 이러한 개념들에 대해 상당한 페이지를 할당하여 철저하게 설명하였다. 또한 가능한 많은 그림을 도입하여 독자들이 이해하기 쉽도록 접근하였다.
천인국
서울대학교 전자공학과에 입학하여 1983년 공학사 학위를 취득하였고, 한국과학기술원 대학원에 입학하여 1985년 전기 및 전자공학과 석사와 박사 학위를, 1993년에 박사 학위를 취득하였다. 1985년부터 1988년까지 삼성전자의 종합연구소에서 주임 연구원으로 재직하였고, 1993년부터 현재까지 순천향대학교 정보기술공학부 교수로 재직 중이다. 2005년에는 캐나다 UBC에서 방문 교수를 지냈다.
주요 집필서는 『C++ ESPRESSO』(2010, 인피니티북스), 『Power C++』(2010, 인피니티북스),『Power JAVA 2판』(2012, 인피니티북스), 『HTML5 + CSS3 + JavaScript로 배우는 웹프로그래밍 기초』(2015, 인피니티북스), 『쉽게 풀어쓴 C언어 Express』(2007, 생능출판사),『어서와 C언어는 처음이지!』(2015, 인피니티북스),『어서와 Java는 처음이지!』(2015, 인피니티북스)등이 있다.
Chapter 01 기초 사항
01 이번 장에서 만들어 볼 프로그램
02 소프트웨어의 중요성
03 프로그래밍과 프로그래밍 언어
04 컴파일러는 무엇인가?
05 C++언어
06 왜 C++를 사용하는가?
07 절차지향 vs 객체지향
08 C++ 프로그램 개발 단계
09 비주얼 스튜디오 설치하기
10 비주얼 스튜디오 사용하기
11 첫 번째 프로그램 분석
12 변수와 자료형
13 auto
14 출력과 입력
15 수식과 연산자
Chapter 02 제어 구조와 배열
01 이번 장에서 만들어 볼 프로그램
02 제어 구조
03 if-else문
04 중첩 if-else문
05 switch문
06 while루프
07 for루프
08 배열
09 범위-기반 for루프
10 2차원 배열
Chapter 03 함수와 문자열
01 이번 장에서 만들어 볼 프로그램
02 함수란?
03 함수 원형 정의
04 함수 호출시 인수 전달 방법
05 중복 함수
06 디폴트 인수
07 인라인 함수
08 문자열
Chapter 04 클래스와 객체
01 이번 장에서 만들어 볼 프로그램
02 객체 지향이란?
03 객체는 무엇으로 구성되는가?
04 클래스는 객체의 설계도
05 멤버 함수 중복 정의
06 클래스의 인터페이스와 구현의 분리
07 객체 지향 프로그래밍의 개념들
08 UML
Chapter 05 생성자와 접근제어
01 이번 장에서 만들어 볼 프로그램
02 생성자
03 소멸자
04 접근 제어
05 객체와 함수
Chapter 06 객체 배열과 벡터
01 이번 장에서 만들어 볼 프로그램
02 객체 배열
03 벡터
04 array 클래스
Chapter 07 SFML로 작성해 보는 프로젝트 1
01 이번 장에서 만들어 볼 프로그램
02 SFML이란?
03 SFML의 설치
04 SFML 프로젝트 만들기
05 SFML 기초
06 Lunar Lander 게임
07 벽돌깨기
08 지뢰 찾기 게임 작성
Chapter 08 포인터와 동적객체 생성
01 이번 장에서 만들어 볼 프로그램
02 포인터란?
03 동적 할당 메모리
04 스마트 포인터
05 객체의 동적 생성
06 const 포인터
Chapter 09 복사생성자와 정적 멤버
01 이번 장에서 만들어 볼 프로그램
02 함수로 객체 전달하기
03 함수가 객체 반환하기
04 복사 생성자
05 클래스 안에 객체 포함하기
06 정적 변수
Chapter 10 연산자 중복과 프렌드 함수
01 이번 장에서 만들어 볼 프로그램
02 연산자 중복 소개
03 연산자 중복의 기초
04 ==연산자의 중복
05 ++연산자의 중복
06 대입 연산자의 중복
07 인덱스 연산자[ ]의 중복
08 포인터 연산자의 중복
09 프렌드 함수와 프렌드 클래스
10. [[연산자의 중복 정의
11. ]]연산자의 중복 정의
12. 연산자 중복 시에 유의할 점
Chapter 11 상속
01 이번 장에서 만들어 볼 프로그램
02 상속의 개요
03 왜 상속이 필요한가?
04 상속과 생성자/소멸자
05 접근 지정자
06 멤버 함수 재정의
07 다중 상속
Chapter 12 다형성과 가상 함수
01 이번 장에서 만들어 볼 프로그램
02 다형성이란?
03 참조자와 가상 함수
04 가상 소멸자
05 순수 가상 함수
Chapter 13 파일처리
01 이번 장에서 만들어 볼 프로그램
02 파일 입출력
03 멤버 함수를 이용한 파일 입출력
04 이진 파일
05 임의 접근 파일
Chapter 14 예외처리와 템플릿
01 이번 장에서 만들어 볼 프로그램
02 예외 처리란?
03 예외 처리기
04 예외 전달
05 다중 catch문장
06 함수 템플릿
07 클래스 템플릿
Chapter 15 STL과 람다식
01 이번 장에서 만들어 볼 프로그램
02 표준 템플릿 라이브러리(STL)
03 컨테이너
04 반복자
05 컨터이너의 공통 멤버 함수
06 벡터
07 덱
08 리스트
09 집합
10 Map
11 컨테이너 어댑터
12 STL 알고리즘의 소개
13 많이 사용되는 알고리즘
14 람다식
Chapter 16 SFML로 작성해보는 프로젝트2
01 이번 장에서 만들어 볼 프로그램
02 벽돌 깨기 게임 만들기
제대로 만든 C++프로그래밍 학습서
C++언어는 C언어에 객체 지향 특징을 추가한 언어로 빠른 실행 속도를 가진 응용 프로그램을 제작하는 데 강점을 가진 언어이다. 하지만 그런 반면에 학습하기 어렵다는 오해도 가지고 있는데 이 책은 이 같은 우려를 말끔히 씻어준다.
-각 설명에 따른 이해는 그림과 함께 할 수 있도록 최대한 노력하였다.
-C++의 핵심적인 개념들에 대하여 상당한 페이지를 할애하여 철저하게 설명하였다.
-STL라이브러리 중에서 중요한 자료구조인 벡터를 미리 소개하여 실제 프로그램에서 사용할 수 있도록 하였다.