책 소개
요약
이 책은 C++의 창시자인 비야네 스트롭스트룹이 직접 쓴 C++ 참고도서의 결정판으로서, 2011년 발표된 ISO C++11 표준을 반영한 최신판이다. C++11에 와서 C++는 큰 변화를 겪었으며, 그 결과 더 나아진 프로그래밍 언어가 됐다. 이런 특성을 효과적으로 활용하기 위해서는 기존과 다른 C++ 프로그래밍 접근법이 필요하다. 저자는 C++의 새로운 기능들을 단순 나열식으로 설명하지 않고, C++11의 배경이 되는 설계 철학을 바탕으로 새로운 개념과 기법들을 통합적 관점으로 설명한다. C++11 표준화 작업에 주도적으로 참여한 저자로서 다른 책에서 찾아볼 수 없는 C++11의 미묘한 특징들을 효과적으로 드러내주는 예제와 설명을 독자들에게 전해 줄 것이다.
이 책에서 다루는 내용
새로운 C++11에서 다루는 내용
■ 병행성 지원
■ 정규 표현식, 자원 관리 포인터, 난수, 개선된 컨테이너
■ 범용의 통일화된 초기화, 단순화된 for 문, 이동 의미 구조, 유니코드 지원
■ 람다, 범용 상수 표현식, 클래스 기본 설정에 대한 제어, 가변인자 템플릿, 템플릿 별칭, 사용자 정의 리터럴
■ 호환성 이슈
이 책에서 다루는 종합적인 내용
■ 기본 기능: 타입, 객체, 유효 범위, 저장공간, 계산의 기본 및 기타
■ 네임스페이스, 소스 파일, 예외 처리에 의해 지원되는 모듈성
■ 전통적인 프로그래밍, 객체 지향 프로그래밍, 일반화 프로그래밍의 통합을 지원하는 형태로서 클래스, 클래스 계층 구조, 템플릿을 포함하는 C++ 추상화
■ 표준 라이브러리: 컨테이너, 알고리즘, 반복자, 문자열, 스트림 입출력, 로케일, 수치 및 기타
■ C++ 기본 메모리 모델에 대한 심층적인 탐구
이 책의 대상 독자
이 책은 다음과 같은 세 가지 독자층을 염두에 뒀다.
■ 최신 ISO C++ 표준이 제공할 수 있는 가능성이 무엇인지 알고 싶은 C++ 프로그래머
■ C++이 C보다 더 나은 뭔가를 제공할 수 있는지 궁금한 C 프로그래머
■ 자바, C+, 파이썬, 루비 같은 애플리케이션 언어를 다뤄본 사람들 중에 컴퓨터와 좀 더 가까운, 즉 좀 더 융통성 있고 좀 더 나은 컴파일 타임 체크를 제공하며, 좀 더 나은 성능을 제공하는 뭔가를 찾는 이들
당연히 이 세 그룹이 동떨어진 건 아니다. 전문 소프트웨어 개발자들은 한 가지 이상의 프로그래밍 언어에 숙달해 있다.
이 책은 독자들이 프로그래머라고 가정한다. for 루프나 컴파일러가 뭔지 모른다면 이 책은 (아직) 여러분에게 적합한 책이 아니다. 프로그래밍과 C++를 시작한다면 내가 쓴 『Programming: Principles and Practice Using C++ (Second Edition) 한국어판』(에이콘, 2015)을 대신 추천한다. 게다가 나는 독자들이 소프트웨어 개발자로서 어느 정도 숙련돼 있다고 가정한다. “뭐하러 테스트를 하지?”라고 묻던가, “모든 언어는 기본적으로 다 똑같아. 문법만 알려달란 말이야.”라고 말하든가, 모든 작업에 두루 적합한 단 한 가지 언어가 있다고 확신한다면 이 책은 여러분에게 적합한 책이 아니다.
이 책의 구성
순수 학습서는 어떤 원리든지 설명한 후에 활용되게 하기 위해 순서대로 주제를 나열하므로,첫 페이지부터 순서대로 읽어야 한다. 반대로 순수 참고 매뉴얼은 어디서부터 읽어도 좋다. 참고 매뉴얼은 관련된 주제에 대한 전후의 참조 사항을 곁들여 각 주제를 간결하게 설명한다. 순수 학습서는 원칙적으로 선행 학습 없이는 읽을 수 없으며, 모든 사항을 상세하게 설명한다. 순수 참고서는 기본적인 모든 개념과 기법에 익숙한 독자를 대상으로 한 것이다. 대부분의 개념과 기법을 알고 있는 독자라면 장 단위나 절 단위로 참고서를 이용할 수 있다. 그렇지 않은 독자라면 처음부터 시작하되 세부 사항에 지나치게 매달리려고 하지 말아야 한다. 색인과 상호 참조를 활용하자.
책의 각 부분이 상대적으로 자기 완결적이다 보니 중복을 피할 수 없지만, 중복은 순서대로 책을 읽는 독자들에게는 복습의 의미도 있다. 이 책은 자체적인 내용과 ISO C++ 표준 양쪽을 상당한 비중으로 참조한다. 숙련된 프로그래머들은 C++ ‘둘러보기’를 비교적 재빨리 훑어보면 이 책을 참고서로 활용하는 데 필요한 개요를 파악할 수 있다. 이 책은 다음과 같은 4개의 부분으로 구성돼 있다.
1부, 도입부:
1장은 이 책에 대한 안내이며, C++의 배경 지식을 설명한다. 2장~5장은 C++ 언어와 C++ 표준 라이브러리에 대한 간단한 안내를 제공한다.2부, 기본 기능: 6장~15장은 C++의 기본 제공 타입과 기본 기능을 이용해서 프로그램을 구성하는 방법을 설명한다.
3부, 추상화 메커니즘: 16장~29장은 C++의 추상화 메커니즘과 객체지향 및 일반화 프로그래밍에 그것들을 활용하는 방법을 설명한다.
4부, 표준 라이브러리: 30장~44장은 표준 라이브러리에 대한 개요와 호환성 이슈에 대해 논의한다.
목차
목차
- 1부 소개
- 1장 독자 참고 사항
- 2장 C++ 둘러보기: 기초
- 3장 C++ 둘러보기: 추상화 메커니즘
- 4장 C++ 둘러보기: 컨테이너와 알고리즘
- 5장 C++ 둘러보기: 병행성과 유틸리티
- 2부 기본 기능
- 6장 타입과 선언
- 7장 포인터, 배열, 참조
- 8장 구조체, 공용체, 열거형
- 9장 문장
- 10장 표현식
- 11장 선택 연산
- 12장 함수
- 13장 예외 처리
- 14장 네임스페이스
- 15장 소스 파일과 프로그램
- 3부 추상화 메커니즘
- 16장 클래스
- 17장 생성, 마무리, 복사와 이동
- 18장 연산자 오버로딩
- 19장 특수 연산자
- 20장 파생 클래스
- 21장 클래스 계층 구조
- 22장 런타임 타입 정보
- 23장 템플릿
- 24장 일반화 프로그래밍
- 25장 특수화
- 26장 인스턴스화
- 27장 템플릿과 계층 구조
- 28장 메타프로그래밍
- 29장 행렬 설계
- 4부 표준 라이브러리
- 30장 포준 라이브러리 개요
- 31장 STL 컨테이너
- 32장 STL 알고리즘
- 33장 STL 반복자
- 34장 메모리와 자원
- 35장 유틸리티
- 36장 문자열
- 37장 정규 표현식
- 38장 입출력 스트림
- 39장 로케일
- 40장 수치
- 41장 병행성
- 42장 스래드와 태스크
- 43장 C 표준 라이브러리
- 44장 호환성
도서 오류 신고
정오표
정오표
수정 사항은 여기에서 내려받으세요.
[p.74: 1행]
[p.238: 아래에서 7행]
프로그래머는 참조자가 유효하다고 가장할 수도 있다.
->
프로그래머는 참조자가 유효하다고 가정할 수도 있다.
[p.1289: 아래에서 7행]
42장과 41잘
->
41장과 42장