전문가를 위한 C++ 마크 그레고리 pdf 다운로드를 무료로 제공합니다 C++는 마스터하기 어렵기로 악명 높지만, 풍부한 기능 덕분에 게임이나 상용 소프트웨어 애플리케이션을 개발하는 대표 언어로 자리매김했다.
관련 책 pdf 모음
책 소개
숙련된 C++ 프로그래머조차 잘 모르는 고급 기능도 많은데, 최신 C++20이 나온 지금이야말로 C++의 모든 기능을 살펴볼 절호의 기회다. 『전문가를 위한 C++(개정5판)』은 C++20에 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하므로 C++를 더 깊이 이해하려는 프로그래머에게 적합하다. C++ 전문가가 되는 데 필요한 내용을 조목조목 옮긴 책이다. 코드 품질과 프로그래밍 효율을 동시에 높이는 C++ 프로그래밍 기법을 소개한다. 특히 C++20부터 새로 추가된 기능을 이 책 전반에 걸쳐 소개한다. 이러한 기능은 별도 장이나 절로 따로 빼서 한꺼번에 설명하는 대신, 각 장에 관련된 부분이 있을 때마다 하나씩 소개하며 각 장의 예제도 새로운 기능을 활용하도록 업데이트했다. 이 책은 단순히 언어의 문법과 기능만 소개하는 데 머물지 않는다. 프로그래밍 방법론, 재사용 가능한 디자인 패턴, 바람직한 프로그래밍 스타일도 함께 다룬다. 특히 코드를 설계하고 작성하는 단계부터 디버깅하고 협업하는 단계에 이르는 전반적인 소프트웨어 개발 프로세스에 따라 설명한다. 그 과정에서 C++ 언어 자체의 기능과 특이한 점을 마스터할 수 있고, 대규모 소프트웨어 개발을 위한 강력한 기법을 익힐 수 있다. 이 책을 제대로 읽는다면 제대로 알려지지 않았거나 잘못 이해하기 쉬운 기능을 제대로 파악함으로써 C++에 대한 지식의 폭을 넓힐 수 있다. 또한 객체지향 설계 방식을 이해하고 최신 디버깅 기술도 익힐 수 있다. 나아가 일상 개발 업무에 당장 적용할 수 있는 재사용성 관련 기법을 풍부하게 갖출 수 있다. C++20 기반의 더 나은 C++ 프로그래머가 될 수 있는 절호의 기회를 놓치지 않길 바란다.
전문가를 위한 C++ 마크 그레고리
[PART I 전문가를 위한 C++ 첫걸음]
CHAPTER 1 C++와 표준 라이브러리 초단기 속성 코스
_1.1 C++의 기초
_1.2 어느 정도 규모 있는 첫 C++ 프로그램
_1.3 정리
_1.4 연습 문제
CHAPTER 2 스트링과 스트링 뷰 다루기
_2.1 동적 스트링
_2.2 스트링 포맷 지정
_2.3 정리
_2.4 연습 문제
CHAPTER 3 코딩 스타일
_3.1 코딩 스타일의 중요성
_3.2 코드 문서화
_3.3 코드 분해
_3.4 명명 규칙
_3.5 언어의 기능에 스타일 적용하기
_3.6 코드 서식
_3.7 스타일과 관련하여 해결할 문제
_3.8 정리
_3.9 연습 문제
[PART II 전문가다운 C++ 소프트웨어 설계 방법]
CHAPTER 4 전문가답게 C++ 프로그램 설계하기
_4.1 프로그램 설계의 정의
_4.2 프로그램 설계의 중요성
_4.3 C++에 적합한 설계 방법
_4.4 C++ 설계에 관련된 두 가지 원칙
_4.5 코드 재사용
_4.6 체스 프로그램 설계
_4.7 정리
_4.8 연습 문제
CHAPTER 5 객체지향 설계
_5.1 절차형 사고방식
_5.2 객체지향 철학
_5.3 클래스 세상에 살기
_5.4 클래스 관계
_5.5 정리
_5.6 연습 문제
CHAPTER 6 재사용을 고려한 설계
_6.1 재사용 철학
_6.2 코드를 재사용할 수 있도록 설계하는 방법
_6.3 정리
_6.4 연습 문제
[PART III 전문가답게 C++ 코딩하기]
CHAPTER 7 메모리 관리
_7.1 동적 메모리 다루기
_7.2 배열과 포인터의 두 얼굴
_7.3 로우레벨 메모리 연산
_7.4 흔히 발생하는 메모리 관련 문제
_7.5 스마트 포인터
_7.6 정리
_7.7 연습 문제
CHAPTER 8 클래스와 객체 이해
_8.1 스프레드시트 예제
_8.2 클래스 작성 방법
_8.3 객체의 라이프 사이클
_8.4 정리
_8.5 연습 문제
CHAPTER 9 클래스와 객체 완전 정복
_9.1 프렌드
_9.2 객체에 동적 메모리 할당하기
_9.3 메서드의 종류
_9.4 데이터 멤버의 종류
_9.5 중첩 클래스
_9.6 클래스에 열거 타입 정의하기
_9.7 연산자 오버로딩
_9.8 안정된 인터페이스 만들기
_9.9 정리
_9.10 연습 문제
CHAPTER 10 상속 활용하기
_10.1 상속을 이용한 클래스 구현
_10.2 코드 재사용을 위한 상속
_10.3 부모를 공경하라
_10.4 다형성을 위한 상속
_10.5 다중 상속
_10.6 상속에 관련된 미묘하면서 흥미로운 문제들
_10.7 캐스트
_10.8 정리
_10.9 연습 문제
CHAPTER 11 C++의 까다롭고 유별난 부분
_11.1 모듈
_11.2 헤더 파일
_11.3 언어 핵심 기능에 대한 테스트 매크로
_11.4 static 키워드
_11.5 C 유틸리티
_11.6 정리
_11.7 연습 문제
CHAPTER 12 템플릿으로 제네릭 코드 만들기
_12.1 템플릿 소개
_12.2 클래스 템플릿
_12.3 함수 템플릿
_12.4 변수 템플릿
_12.5 콘셉트
_12.6 정리
_12.7 연습 문제
CHAPTER 13 C++ I/O 심층 분석
_13.1 스트림 사용법
_13.2 스트링 스트림
_13.3 파일 스트림
_13.4 양방향 I/O
_13.5 파일시스템 지원 라이브러리
_13.6 정리
_13.7 연습 문제
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 사용자 정의 리터럴 연산자 오버로딩
_15.11 정리
_15.12 연습 문제
CHAPTER 16 C++ 표준 라이브러리 둘러보기
_16.1 코드 작성 원칙
_16.2 C++ 표준 라이브러리 둘러보기
_16.3 정리
_16.4 연습 문제
CHAPTER 17 반복자와 범위 라이브러리
_17.1 반복자
_17.2 스트림 반복자
_17.3 반복자 어댑터
_17.4 범위
_17.5 정리
_17.6 연습 문제
CHAPTER 18 표준 라이브러리 컨테이너
_18.1 컨테이너 개요
_18.2 순차 컨테이너
_18.3 컨테이너 어댑터
_18.4 정렬 연관 컨테이너
_18.5 비정렬 연관 컨테이너 – 해시 테이블
_18.6 기타 컨테이너
_18.7 정리
_18.8 연습 문제
CHAPTER 19 함수 포인터, 함수 객체, 람다 표현식
_19.1 함수 포인터
_19.2 메서드 및 데이터 멤버를 가리키는 포인터
_19.3 std::function
_19.4 함수 객체
_19.5 람다 표현식
_19.6 std::invoke( )
_19.7 정리
_19.8 연습 문제
CHAPTER 20 표준 라이브러리 알고리즘 완전 정복
_20.1 알고리즘 개요
_20.2 표준 라이브러리 알고리즘 심층 분석
_20.3 정리
_20.4 연습 문제
CHAPTER 21 스트링 현지화와 정규 표현식
_21.1 현지화
_21.2 정규 표현식
_21.3 정리
_21.4 연습 문제
CHAPTER 22 날짜와 시간 유틸리티
_22.1 컴파일 시간 유리수
_22.2 duration
_22.3 clock
_22.4 time_point
_22.5 날짜
_22.6 타임존
_22.7 정리
_22.8 연습 문제
CHAPTER 23 무작위수 기능
_23.1 C 스타일 무작위수 생성
_23.2 무작위수 엔진
_23.3 무작위수 엔진 어댑터
_23.4 기본 제공 엔진과 엔진 어댑터
_23.5 무작위수 생성하기
_23.6 무작위수 분포
_23.7 정리
_23.8 연습 문제
CHAPTER 24 기타 라이브러리 유틸리티
_24.1 어휘 타입
_24.2 tuple
_24.3 정리
_24.4 연습 문제
[PART IV C++ 고급 기능 마스터하기]
CHAPTER 25 표준 라이브러리 커스터마이즈 및 확장 방법
_25.1 할당자
_25.2 표준 라이브러리 확장하기
_25.3 정리
_25.4 연습 문제
CHAPTER 26 고급 템플릿
_26.1 템플릿 매개변수에 대한 심화 학습
_26.2 클래스 템플릿 부분 특수화
_26.3 오버로딩으로 함수 템플릿 부분 특수화 흉내내기
_26.4 템플릿 재귀
_26.5 가변 인수 템플릿
_26.6 메타프로그래밍
_26.7 정리
_26.8 연습 문제
CHAPTER 27 C++ 멀티스레드 프로그래밍
_27.1 들어가며
_27.2 스레드
_27.3 아토믹 연산 라이브러리
_27.4 뮤텍스
_27.5 상태 변수
_27.6 래치
_27.7 배리어
_27.8 세마포어
_27.9 퓨처
_27.10 멀티스레드 Logger 클래스 예제
_27.11 스레드 풀
_27.12 코루틴
_27.13 바람직한 스레드 디자인과 구현을 위한 가이드라인
_27.14 정리
_27.15 연습 문제