프로그래밍 언어/C++

확실한 C ++ 의 가이드 및 목록

Rateye 2021. 7. 23. 11:14
728x90
반응형
질문 : 확실한 C ++ 책 가이드 및 목록

이 질문은 매년 출판되는 수십 권의 나쁜 C ++ 책 중에서 몇 가지 진주를 수집하려고합니다.

인터넷에서 찾아 볼 수있는 자습서에서 이동 중에 자주 선택되는 다른 프로그래밍 언어와 달리 잘 작성된 C ++ 책을 공부하지 않고 C ++를 빠르게 선택할 수있는 사람은 거의 없습니다. 이것을하기에는 너무 크고 복잡합니다. 사실, 너무 크고 복잡해서 아주 나쁜 C ++ 책 이 많이 있습니다. 그리고 우리는 나쁜 스타일에 대해 말하는 것이 아니라 눈에 띄게 명백한 사실적 오류를 자랑하고 엄청나게 나쁜 프로그래밍 스타일을 홍보하는 것과 같은 것입니다.

허용 된 답변을 편집하여 양질의 책 과 대략적인 기술 수준 을 제공하십시오. 가급적 C ++ 채팅방 에서 추가 내용을 논의한 . (단골 사람들이 추천에 동의하지 않으면 무자비하게 작업을 취소 할 수 있습니다.) 개인적으로 읽거나 이익을 얻은 각 책에 대해 짧은 광고 / 설명을 추가하십시오. 품질, 제목 등 자유롭게 토론하세요. 기준에 맞는 책이 목록에 추가됩니다. ACCU (Association of C and C ++ Users)의 리뷰가있는 책에는 리뷰 링크가 있습니다.

* 참고 : FAQ 및 기타 리소스는 C ++ 태그 정보 아래에서 찾을 수 있습니다.

반응형
답변

  • C ++ Primer * (Stanley Lippman, Josée Lajoie 및 Barbara E. Moo) ( C ++ 11 용으로 업데이트 됨 ) 1k 페이지에서 제공되는이 글은 언어의 거의 모든 것을 매우 접근 가능한 형식으로 다루는 C ++에 대한 매우 철저한 소개입니다. 그리고 아주 자세하게. 제 5 판 (2012 년 8 월 16 일 출시)은 C ++ 11을 다룹니다. [리뷰] *와 혼동하지 C ++ 프라이머 플러스 상당히 불리한와, (스티븐 프라 타) 검토 .
  • 프로그래밍 : C ++를 사용한 원리 및 실습 (Bjarne Stroustrup, 2nd Edition-2014 년 5 월 25 일) ( C ++ 11 / C ++ 14 용으로 업데이트 됨 ) 언어 작성자가 C ++를 사용한 프로그래밍 소개. 좋은 읽기, 이전 프로그래밍 경험이 없다고 가정하지만 초보자를위한 것이 아닙니다.

 

 

  • C ++ 둘러보기 (Bjarne Stroustrup) ( C ++ 17 용 2 판 ) "둘러보기"는 모든 표준 C ++ (언어 및 표준 라이브러리, C ++ 사용)에 대한 빠른 (약 180 페이지 및 14 장) 자습서 개요입니다. 11 ) 이미 C ++를 알고 있거나 적어도 숙련 된 프로그래머 인 사람들에게는 중간 수준의 높은 수준입니다. 이 책은 The C ++ Programming Language, 4th edition의 2-5 장을 구성하는 자료의 확장 버전입니다.
  • Accelerated C ++ (Andrew Koenig 및 Barbara Moo, 1st Edition-2000 년 8 월 24 일) 이것은 기본적으로 C ++ Primer 와 동일한 영역을 다루지 만 그 공간의 4 분의 1에 해당합니다. 이것은 주로 프로그래밍 에 대한 소개가 아니라 이전에 다른 언어로 프로그래밍 한 사람들을위한 C ++에 대한 소개이기 때문입니다. 학습 곡선이 더 가파르지만 이에 대처할 수있는 사람들에게는 언어에 대한 매우 간결한 소개입니다. (역사적으로이 책은 언어를 가르치는 데 현대적인 접근 방식을 사용하는 최초의 초심자 책이 됨으로써 새로운 지평을 열었습니다.) 그럼에도 불구하고 이것이 가르치는 C ++는 순전히 C ++ 98입니다. [리뷰]

 

 

 

  • 효과적인 C ++ (Scott Meyers, 3rd Edition-2005 년 5 월 22 일) 이것은 C ++ 프로그래머가 읽어야 할 최고의 두 번째 책을 목표로 작성되었으며 성공했습니다. 이전 버전은 C 출신의 프로그래머를 대상으로했으며 세 번째 버전은이를 변경하고 Java와 같은 언어의 프로그래머를 대상으로합니다. 그것은 매우 접근하기 쉽고 즐거운 스타일로 이론적 근거와 함께 기억하기 쉬운 ~ 50 가지 규칙을 제시합니다. C ++ 11 및 C ++ 14의 경우 예제와 몇 가지 문제가 오래되었으며 효과적인 최신 C ++를 선호해야합니다. [리뷰]
  • 효과적인 최신 C ++ (Scott Meyers) 이것은 기본적으로 C ++ 03에서 C ++ 11 및 C ++ 14로 전환하는 C ++ 프로그래머를 대상 으로하는 새로운 버전의 Effective C ++입니다.
  • 효과적인 STL (Scott Meyers) 이것은 효과적인 C ++ 가 언어 전체에했던 일을 STL에서 오는 표준 라이브러리 부분에 동일하게하는 것을 목표로합니다. 그 이유와 함께 경험 규칙을 제시합니다. [리뷰]

 

 

  • 더 효과적인 C ++ (Scott Meyers) Effective C ++ 보다 경험상 훨씬 더 많은 규칙. 첫 번째 책만큼 중요하지는 않지만 여전히 알아두면 좋습니다.
  • Exceptional C ++ (Herb Sutter) 일련의 퍼즐로 제시되는이 프로그램은 다양한 항목에 대한 심층적 인 범위 외에도 RAII (Resource Acquisition is Initialization)를 통한 C ++의 적절한 리소스 관리 및 예외 안전성에 대한 최선의 철저한 논의 중 하나입니다. pimpl 관용구, 이름 조회, 좋은 클래스 디자인 및 C ++ 메모리 모델을 포함한 기타 주제. [리뷰]
  • More Exceptional C ++ (Herb Sutter) C ++의 효과적인 객체 지향 프로그래밍 및 STL의 올바른 사용에 대한 논의 외에도 Exceptional C ++ 에서 다루지 않은 추가 예외 안전 주제를 다룹니다. [리뷰]
  • Exceptional C ++ Style (Herb Sutter) 일반 프로그래밍, 최적화 및 리소스 관리에 대해 설명합니다. 이 책은 또한 비 멤버 함수와 단일 책임 원칙을 사용하여 C ++로 모듈 식 코드를 작성하는 방법에 대한 훌륭한 설명을 제공합니다. [리뷰]
  • C ++ 코딩 표준 (Herb Sutter 및 Andrei Alexandrescu) 여기에서 "코딩 표준"은 "코드를 들여 쓰기해야하는 공백 수"를 의미하지 않습니다. 이 책에는 정확하고 이해하기 쉬우 며 효율적인 C ++ 코드를 작성하는 데 도움이되는 101 개의 모범 사례, 관용구 및 일반적인 함정이 포함되어 있습니다. [리뷰]
  • C ++ 템플릿 : 완전한 가이드 (David Vandevoorde 및 Nicolai M. Josuttis)이 책은 C ++ 11 이전에 존재했던 템플릿에 대한 책입니다. 기본부터 고급 템플릿 메타 프로그래밍에 이르기까지 모든 것을 다루고 템플릿이 작동하는 방식 (개념적으로 그리고 구현되는 방식 모두)에 대한 모든 세부 사항을 설명하고 많은 일반적인 함정에 대해 설명합니다. 부록에 ODR (One Definition Rule) 및 과부하 해결에 대한 훌륭한 요약이 있습니다. C ++ 11, C ++ 14 및 C ++ 17을 다루는 두 번째 버전이 이미 게시되었습니다. [리뷰]
  • C ++ 17-The Complete Guide (Nicolai M. Josuttis)이 책은 'Inline Variables', 'constexpr if'와 같은 간단한 것부터 'Polymorphic'까지 모든 것을 다루는 C ++ 17 표준에 도입 된 모든 새로운 기능을 설명합니다. Memory Resources '및'New and Delete with overaligned Data '. [리뷰]
  • C ++ in Action (Bartosz Milewski). 이 책은 처음부터 애플리케이션을 구축함으로써 C ++와 그 기능을 설명합니다. [리뷰]
  • C ++의 함수형 프로그래밍 (Ivan Čukić). 이 책은 최신 C ++ (C ++ 11 이상)에 함수형 프로그래밍 기술을 소개합니다. 함수형 프로그래밍 패러다임을 C ++에 적용하려는 사람들을위한 아주 좋은 책입니다.

 

 

  • Modern C ++ Design (Andrei Alexandrescu) 고급 일반 프로그래밍 기술에 대한 획기적인 책. 정책 기반 디자인, 유형 목록 및 기본적인 일반 프로그래밍 관용구를 소개 한 다음 일반 프로그래밍을 사용하여 얼마나 많은 유용한 디자인 패턴 (소형 개체 할당 자, 펑터, 공장, 방문자 및 다중 방법 포함)을 효율적이고 모듈 식으로 구현할 수 있는지 설명합니다. . [리뷰]
  • C ++ 템플릿 메타 프로그래밍 (David Abrahams 및 Aleksey Gurtovoy)
  • C ++ Concurrency In Action (Anthony Williams) 스레드 라이브러리, 원자 라이브러리, C ++ 메모리 모델, 잠금 및 뮤텍스, 다중 스레드 애플리케이션 설계 및 디버깅 문제를 포함한 C ++ 11 동시성 지원을 다루는 책입니다. C ++ 14 및 C ++ 17을 다루는 두 번째 버전이 이미 게시되었습니다. [리뷰]
  • 고급 C ++ 메타 프로그래밍 (Davide Di Gennaro) TMP 기술의 C ++ 11 이전 매뉴얼로 이론보다는 실습에 더 중점을 둡니다. 이 책에는 수많은 스 니펫이 있으며, 그중 일부는 유형 특성에 의해 쓸모 없게 만들어졌지만, 그럼에도 불구하고 그 기술은 알아두면 유용합니다. 기발한 서식 / 편집을 참을 수 있다면 Alexandrescu보다 읽기가 더 쉽고 틀림없이 더 보람이 있습니다. 경험이 많은 개발자의 경우 일반적으로 광범위한 경험을 통해서만 얻을 수있는 C ++의 어두운 부분 (특이 함)에 대해 알아 차릴 수있는 좋은 기회가 있습니다.
  • 대규모 C ++ 볼륨 I, 프로세스 및 아키텍처 (John Lakos). 이전 책 'Large Scale C ++ Design'을 확장하는 3 부 시리즈 중 1 부. Lakos는 매우 큰 C ++ 소프트웨어 프로젝트를 관리하기위한 전투 테스트 기술을 설명합니다. 큰 C ++ 소프트웨어 프로젝트에서 작업하는 경우 이것은 물리적 구조와 논리적 구조 간의 관계, 구성 요소 전략 및 재사용 전략을 자세히 설명하는 훌륭한 읽기입니다.

 

 

  • C ++ 프로그래밍 언어 (Bjarne Stroustrup) ( C ++ 11 용으로 업데이트 됨 ) 제작자가 C ++에 대한 고전적인 소개입니다. 고전적인 K & R과 유사하게 쓰여진 이것은 실제로 그것과 매우 흡사하며 핵심 언어에서 표준 라이브러리, 프로그래밍 패러다임, 언어 철학에 이르기까지 거의 모든 것을 다룹니다. [검토] 참고 : C ++ 표준의 모든 릴리스는 " 현재 C 또는 C ++ 표준 문서를 어디에서 찾을 수 있습니까? "라는 질문에서 추적됩니다.
  • C ++ 표준 라이브러리 튜토리얼 및 참조 (11 ++ C 업데이트) (니콜라 Josuttis에)는 C ++ 표준 라이브러리에 대한 소개 및 참조. 두 번째 에디션 (2012 년 4 월 9 일 출시)은 C ++ 11을 다룹니다. [리뷰]
  • C ++ IO 스트림 및 로케일 (Angelika Langer 및 Klaus Kreft) 스트림과 로케일에 대해 알고 싶다면 여기가 확실한 답을 찾을 수있는 유일한 장소라는 점을 제외하면이 책에 대해 할 말이 거의 없습니다. [리뷰]

 

 

C ++ 11 / 14 / 17 /… 참조 :

  • C ++ (11) / (14) / (17) 표준 (INCITS / ISO / IEC 14882 : 2011/2014/2017) 이것은 물론, 또는 C ++ 아닌 모두의 최종 중재자입니다. 그러나 이는 순전히 이해에 상당한 시간과 노력을 할애하려는 숙련 된 사용자를위한 참고 자료로 의도 된 것입니다. C ++ 17 표준은 198 스위스 프랑에 대한 전자 형식으로 출시되었습니다.
  • C ++ 17 표준을 사용할 수 있지만 경제적 인 형태는 아닌 것 같습니다. ISO에서 직접 구입하면 198 스위스 프랑 (약 미화 200 달러)입니다. 대부분의 사람들에게 표준화 이전 의 최종 초안은 충분하고 무료입니다. 많은 사람들이 C ++ 20에 포함될 가능성이있는 새로운 기능을 문서화 한 더 새로운 초안 을 선호 할 것입니다.
  • 새 C ++ 개요 (C ++ 11 / 14) (PDF 전용) (Scott Meyers) ( C ++ 14 용으로 업데이트 됨 ) 다음은에서 제공하는 3 일 교육 과정의 프레젠테이션 자료 (슬라이드 및 일부 강의 노트)입니다. C ++에 대해 매우 존경받는 저자 인 Scott Meyers. 항목 목록이 짧지 만 품질이 높습니다.
  • C ++ 핵심 지침 (C ++ 11 / 14 / 17 /…) (Bjarne Stroustrup 및 Herb Sutter 편집)은 최신 C ++를 잘 사용하기위한 일련의 지침으로 구성된 진화하는 온라인 문서입니다. 이 지침은 인터페이스, 리소스 관리, 메모리 관리 및 애플리케이션 아키텍처 및 라이브러리 디자인에 영향을 미치는 동시성과 같은 상대적으로 높은 수준의 문제에 중점을 둡니다. 이 프로젝트는 Bjarne Stroustrup과 다른 사람들이 CppCon'15 에서 발표했으며 커뮤니티의 기여를 환영합니다. 대부분의 지침은 가능한 도구 지원에 대한 논의뿐만 아니라 이론적 근거와 예제로 보완됩니다. 많은 규칙은 정적 분석 도구에서 자동으로 검사 할 수 있도록 특별히 설계되었습니다.
  • C ++ Super-FAQ (Marshall Cline, Bjarne Stroustrup 및 기타)는 이전에 Marshall Cline과 Bjarne Stroustrup이 개별적으로 유지 관리 한 C ++ FAQ를 통합하고 새로운 기여를 통합하기 위해 Standard C ++ Foundation의 노력입니다. 항목은 대부분 중간 수준의 문제를 다루며 종종 유머러스 한 어조로 작성됩니다. 아직 모든 항목이 최신 버전의 C ++ 표준으로 완전히 업데이트 된 것은 아닙니다.
  • cppreference.com (C ++ 03 / 11 / 14 / 17 /…) (Nate Kohl에서 시작)은 기본 핵심 언어 기능을 요약하고 C ++ 표준 라이브러리에 대한 광범위한 문서를 포함하는 위키입니다. 문서는 매우 정확하지만 공식 표준 문서보다 읽기 쉽고 위키 특성으로 인해 더 나은 탐색을 제공합니다. 이 프로젝트는 C ++ 표준의 모든 버전을 문서화하고 사이트에서 특정 버전에 대한 디스플레이를 필터링 할 수 있습니다. 이 프로젝트는 Nate Kohl이 CppCon'14에서 발표했습니다 .

 

 

참고 : 이 책에 포함 된 일부 정보는 최신 정보가 아니거나 더 이상 모범 사례로 간주되지 않을 수 있습니다.

  • C ++의 디자인과 발전 (Bjarne Stroustrup) 언어가 왜 그런지 알고 싶다면이 책에서 답을 찾을 수 있습니다. 이것은 C ++ 의 표준화 이전의 모든 것을 다룹니다.
  • C ++에 대한 반추 -(Andrew Koenig 및 Barbara Moo) [리뷰]
  • 고급 C ++ 프로그래밍 스타일 및 관용구 (James Coplien) 패턴 이동의 전임자로서 많은 C ++ 관련 "관용구"를 설명합니다. 확실히 아주 좋은 책이고 시간을 할애 할 수 있다면 읽을만한 가치가 있지만 꽤 오래되었고 현재의 C ++에 대한 최신 정보가 아닙니다.
  • 대규모 C ++ 소프트웨어 설계 (John Lakos) Lakos는 매우 큰 C ++ 소프트웨어 프로젝트를 관리하는 기술을 설명합니다. 확실히, 그것이 최신 이었다면 좋은 읽기. C ++ 98 이전에 작성되었으며 대규모 프로젝트에 중요한 많은 기능 (예 : 네임 스페이스)이 누락되었습니다. 큰 C ++ 소프트웨어 프로젝트에서 작업해야하는 경우에는 읽기를 원할 수 있습니다.하지만 그 이상을 염두에 두어야합니다. 확장 및 이후 책 시리즈 인 대규모 C ++ 볼륨 I-III과 혼동하지 마십시오.
  • C ++ 개체 모델 내부 (Stanley Lippman) 가상 멤버 함수가 일반적으로 구현되는 방식과 기본 개체가 다중 상속 시나리오에서 메모리에 일반적으로 배치되는 방식 및이 모든 것이 성능에 어떤 영향을 미치는지 알고 싶다면 여기에서 그러한 주제에 대한 철저한 토론을 찾으십시오.
  • 주석이 달린 C ++ 참조 설명서 (Bjarne Stroustrup, Margaret A. Ellis)이 책은 1989 년 C ++ 2.0 버전 (템플릿, 예외, 네임 스페이스 및 새로운 캐스트가 아직 소개되지 않음)을 탐색한다는 점에서 상당히 구식입니다. 그러나이 책은 언어의 이론적 근거, 가능한 구현 및 기능을 설명하는 시간의 전체 C ++ 표준을 거칩니다. 이 책은 C ++의 프로그래밍 원리와 패턴을 배우는 책이 아니라 C ++ 언어의 모든 측면을 이해하기위한 책입니다.
  • C ++로 생각하기 (Bruce Eckel, 2nd Edition, 2000). 두 권; 튜토리얼 스타일의 무료 소개 레벨 책 세트입니다. 다운로드 : vol 1 , vol 2 . 안타깝게도 공식 정오표 목록이없는 사소한 오류 (예 : 임시 파일이 자동으로 const 부분적인 제 3 자 정오표 목록에서 볼 수 있습니다 http://www.computersciencelab.com/Eckel.htm ,하지만 분명히 유지되지 않습니다.
  • 과학 및 공학 C ++ : 고급 기술 및 예제 소개 (John Barton 및 Lee Nackman) 수치 방법의 맥락에서 C ++에서 사용할 수있는 모든 기능을 설명하고 활용하려는 포괄적이고 매우 상세한 책입니다. 그 당시 Curiously Recurring Template Pattern (CRTP, Barton-Nackman 트릭이라고도 함)과 같은 몇 가지 새로운 기술을 도입했습니다. 차원 분석 및 자동 차별화와 같은 여러 기술을 개척했습니다. 표현식 파서에서 Lapack 래퍼에 이르기까지 다양한 컴파일 가능하고 유용한 코드가 함께 제공되었습니다. 코드는 온라인에서 계속 사용할 수 있습니다 . 안타깝게도 책은 스타일과 C ++ 기능면에서 다소 구식이되었지만 당시 (1994 년, STL 이전)에는 믿을 수없는 투르 드 포스였습니다. 역학 상속에 대한 장은 이해하기가 약간 복잡하고 그다지 유용하지 않습니다. 이동 의미론과 STL에서 배운 교훈을 포함하는이 고전 책의 업데이트 된 버전은 매우 좋을 것입니다.

 

 

출처 : https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
728x90
반응형