나에게 필요한 지식과 기술을 검색해 보세요.

전문가를 위한 C++(개정4판)

C++17, 제네릭 람다, STL, 템플릿, 디자인 패턴, 객체지향의 원리를 익히는 확실한 방법

지은이

마크 그레고리

옮긴이

남기혁

출간일

2019.08.20

레벨

초급

평점

4.9(20명)

정가

68,000

판매가

61,200

총 결제 금액

10%

61,200

적립 예정

3,060P

쪽수

1496쪽

ISBN

9791162242087

브랜드

한빛미디어

전문가 수준 C++ 프로그래머와 그저 문법을 아는 C++ 프로그래머 

그 차이를 만드는 C++17 최고의 실전 가이드! 

원서 4번째 개정과 완전히 새로운 번역!

C++는 마스터하기 어렵기로 악명 높지만 풍부한 기능 덕분에 게임이나 상용 소프트웨어 애플리케이션을 개발하는 대표 언어로 자리매김했다. 숙련된 C++ 프로그래머조차 잘 모르는 고급 기능도 많이 있는데, C++17이 나온 지금이야말로 C++의 모든 기능을 살펴볼 절호의 기회다. 『전문가를 위한 C++(개정4판)』은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 이 책은 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하며 C++를 더 깊이 이해하려는 프로그래머에게 적합하다.

 

[이 책의 내용]

  • C++의 방대한 기능을 최대한 활용하여 효과적인 솔루션을 개발할 수 있도록 C ++ 사고방식을 제시한다.
  • 어설프게 알고 있거나 실수하기 쉬운 부분을 바로 잡고 효율과 성능을 높이는 다양한 팁과 기법, 우회전략을 소개한다.
  • 당장 프로젝트에서 마주치고 적용할 수 있는 현실적인 문제와 프로그램 예제를 소개한다.
  • 구조적 바인딩, 중첩 네임스페이스, constexpr if를 비롯한 C++17부터 새로 추가된 기능을 소개한다.
  • string_view, optional, 병렬 알고리즘, 파일시스템 API 등 C++17부터 새로워진 표준 라이브러리의 주요 기능을 심도 있게 살펴본다.

 

상세이미지_700.jpg

 

저자

목차

[Part 1 전문가를 향한 C++의 첫걸음]


CHAPTER 1 C++와 표준 라이브러리 초단기 속성 코스

_1.1 C++의 기초

_1.2 C++의 고급 기능

_1.3 C++의 객체지향 언어 특성

_1.4 유니폼 초기화

_1.5 표준 라이브러리

_1.6 첫 C++ 프로그램

_1.7 정리

 

CHAPTER 2 스트링과 스트링 뷰 다루기

_2.1 동적 스트링

_2.2 정리

 

CHAPTER 3 코딩 스타일

_3.1 코딩 스타일의 중요성

_3.2 코드 문서화

_3.3 코드 분할

_3.4 명명 규칙

_3.5 언어의 기능에 스타일 적용하기

_3.6 포매팅

_3.7 스타일과 관련하여 해결할 문제

_3.8 정리

 

[Part 2 전문가답게 C++ 소프트웨어 디자인하기]


CHAPTER 4 전문가다운 C++ 프로그램 디자인

_4.1 프로그램 디자인의 정의

_4.2 프로그램 디자인의 중요성

_4.3 C++에 적합한 디자인 방법

_4.4 C++ 디자인에 관련된 두 가지 원칙

_4.5 코드 재사용

_4.6 체스 프로그램 디자인

_4.7 요약

 

CHAPTER 5 객체지향 디자인

_5.1 절차형 사고방식

_5.2 객체지향 철학

_5.3 객체의 관점에서 바라보기

_5.4 객체 관계

_5.5 추상화

_5.6 요약

 

CHAPTER 6 재사용을 고려한 디자인

_6.1 재사용 철학

_6.2 코드를 재사용할 수 있도록 디자인하는 방법

_6.3 요약

 

[Part 3 전문가답게 C++ 코딩하기]


CHAPTER 7 메모리 관리

_7.1 동적 메모리 다루기

_7.2 배열과 포인터의 두 얼굴

_7.3 로우레벨 메모리 연산

_7.4 스마트 포인터

_7.5 흔히 발생하는 메모리 문제

_7.6 요약

 

CHAPTER 8 클래스와 객체 숙달하기

_8.1 스프레드시트 예제

_8.2 클래스 작성 방법

_8.3 객체의 라이프 사이클

_8.4 요약

 

CHAPTER 9 클래스와 객체 마스터하기

_9.1 friend

_9.2 객체에 동적 메모리 할당하기

_9.3 메서드의 종류

_9.4 데이터 멤버의 종류

_9.5 중첩 클래스

_9.6 클래스에 열거 타입 정의하기

_9.7 연산자 오버로딩

_9.8 안정된 인터페이스 만들기

_9.9 요약

 

CHAPTER 10 상속 활용하기

_10.1 상속을 이용한 클래스 구현

_10.2 코드 재사용을 위한 상속

_10.3 부모를 존중하라

_10.4 다형성을 위한 상속

_10.5 다중 상속

_10.6 상속에 관련된 미묘하면서 흥미로운 문제들

_10.7 요약

 

CHAPTER 11 C++의 까다롭고 유별난 부분

_11.1 레퍼런스

_11.2 키워드 혼동

_11.3 타입과 캐스팅

_11.4 스코프

_11.5 어트리뷰트

_11.6 사용자 정의 리터럴

_11.7 헤더 파일

_11.8 C 유틸리티

_11.9 요약

 

CHAPTER 12 템플릿으로 제네릭 코드 만들기

_12.1 템플릿 소개

_12.2 클래스 템플릿

_12.3 함수 템플릿

_12.4 변수 템플릿

_12.5 요약

 

CHAPTER 13 C++ I/O 완전 분석

_13.1 스트림 사용법

_13.2 스트링 스트림

_13.3 파일 스트림

_13.4 양방향 I/O

_13.5 요약

 

CHAPTER 14 에러 처리하기

_14.1 에러와 예외

_14.2 익셉션 처리 과정

_14.3 익셉션과 다형성

_14.4 익셉션 다시 던지기

_14.5 스택 풀기와 청소

_14.6 익셉션 처리 과정에서 흔히 발생하는 문제

_14.7 모두 합치기

_14.8 요약

 

CHAPTER 15 C++ 연산자 오버로딩하기

_15.1 연산자 오버로딩 개요

_15.2 산술 연산자 오버로딩하기

_15.3 비트 연산자와 논리 연산자 오버로딩하기

_15.4 스트림 입출력 연산자 오버로딩하기

_15.5 인덱스 연산자 오버로딩하기

_15.6 함수 호출 연산자 오버로딩하기

_15.7 역참조 연산자 오버로딩하기

_15.8 변환 연산자 구현하기

_15.9 메모리 할당과 해제 연산자 오버로딩하기

_15.10 요약

 

CHAPTER 16 C++ 표준 라이브러리 둘러보기

_16.1 코드 작성법

_16.2 C++ 표준 라이브러리 둘러보기

_16.3 요약

 

CHAPTER 17 컨테이너와 반복자 살펴보기

_17.1 컨테이너 개요

_17.2 순차 컨테이너

_17.3 컨테이너 어댑터

_17.4 정렬 연관 컨테이너

_17.5 비정렬 연관 컨테이너(해시 테이블)

_17.6 기타 컨테이너

_17.7 요약

 

CHAPTER 18 표준 라이브러리 알고리즘 마스터하기

_18.1 알고리즘 개요

_18.2 std::function

_18.3 람다 표현식

_18.4 함수 객체

_18.5 표준 라이브러리 알고리즘 심층 분석

_18.6 알고리즘 예제: 선거인 명부 검사

_18.7 요약

 

CHAPTER 19 스트링 현지화와 정규 표현식

_19.1 현지화

_19.2 정규 표현식

_19.3 요약

 

CHAPTER 20 여러 가지 유틸리티 라이브러리

_20.1 ratio 라이브러리

_20.2 chrono 라이브러리

_20.3 무작위수 생성

_20.4 optional

_20.5 variant

_20.6 any

_20.7 tuple

_20.8 파일시스템 지원 라이브러리

_20.9 요약

 

[Part 4 C++ 고급 기능 마스터하기]


CHAPTER 21 표준 라이브러리 커스터마이즈 및 확장

_21.1 할당자

_21.2 스트림 반복자

_21.3 반복자 어댑터

_21.4 표준 라이브러리 확장하기

_21.5 요약

 

CHAPTER 22 고급 템플릿

_22.1 템플릿 매개변수에 대한 심화 학습

_22.2 클래스 템플릿 부분 특수화

_22.3 오버로딩으로 함수 템플릿 부분 특수화 흉내내기

_22.4 템플릿 재귀

_22.5 가변 인수 템플릿

_22.6 메타프로그래밍

_22.7 요약

 

CHAPTER 23 C++ 멀티스레드 프로그래밍

_23.1 들어가며

_23.2 스레드

_23.3 아토믹 연산 라이브러리

_23.4 상호 배제

_23.5 조건 변수

_23.6 promise와 future

_23.7 멀티스레드 Logger 클래스 예제

_23.8 스레드 풀

_23.9 바람직한 스레드 디자인과 구현을 위한 가이드라인

_23.10 요약

 

[Part 5 C++ 소프트웨어 공학]


CHAPTER 24 소프트웨어 공학 기법

_24.1 프로세스의 필요성

_24.2 소프트웨어 라이프 사이클 모델

_24.3 소프트웨어 공학 방법론

_24.4 나만의 프로세스와 방법론 만들기

_24.5 소스 코드 관리

_24.6 요약

 

CHAPTER 25 효율적인 C++ 코드 작성법

_25.1 성능과 효율성에 대하여

_25.2 언어 차원의 효율성

_25.3 디자인 차원의 효율성

_25.4 프로파일링

_25.5 요약

 

CHAPTER 26 테스트 숙달하기

_26.1 품질 관리

_26.2 단위 테스트

_26.3 하이레벨 테스트

_26.4 성공적인 테스트를 위한 팁

_26.5 요약

 

CHAPTER 27 디버깅 완전 정복

_27.1 디버깅 기본 원칙

_27.2 버그 분류

_27.3 버그 방지

_27.4 버그 대비

_27.5 정적 어서션

_27.6 디버깅 테크닉

_27.7 요약

 

CHAPTER 28 디자인 기법과 프레임워크

_28.1 흔히 사용하지만 까먹기 쉬운 문법

_28.2 고급 기법

_28.3 객체지향 프레임워크

_28.4 요약

 

CHAPTER 29 디자인 패턴

_29.1 반복자 패턴

_29.2 싱글턴 패턴

_29.3 추상 팩토리 패턴

_29.4 프록시 패턴

_29.5 어댑터 패턴

_29.6 데코레이터 패턴

_29.7 책임 사슬 패턴

_29.8 옵저버 패턴

_29.9 요약

 

CHAPTER 30 크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법

_30.1 크로스 플랫폼 개발

_30.2 크로스 언어 개발

_30.3 요약

 

[부록 A] C++ 면접 예상 질문 

[부록 B] 참고 문헌 

[부록 C] 표준 라이브러리 헤더 파일 

[부록 D] UML 기초 

리뷰

전체 평점

4.9

오탈자

  • 종이책3713

    표기 오류

    두번째 코드 블록

    2022-03-21
  • 종이책14323

    표기 오류

    위에서 2번째 줄

    2022-03-17
  • 종이책2022

    표기 오류

    밑에서부터 3번째 줄

    2022-02-15
  • 종이책1402

    내용 오류

    p140 맨 마지막 문장

    2021-05-07
  • 종이책11591

    기술 오류

    하단 코드블럭 내 lock_guard 부분

    2020-11-09

68,000

10%

61,200