คู่มือและรายการหนังสือ C ++ ที่ชัดเจน


4243

คำถามนี้พยายามรวบรวมไข่มุกน้อยในหนังสือ C ++ ที่มีการตีพิมพ์ทุกปี

แตกต่างจากภาษาการเขียนโปรแกรมอื่น ๆ ซึ่งมักจะหยิบขึ้นมาจากบทเรียนที่พบบนอินเทอร์เน็ตไม่กี่คนที่สามารถรับ C ++ ได้อย่างรวดเร็วโดยไม่ต้องเรียนหนังสือ C ++ ที่เขียนได้ดี มันใหญ่เกินไปและซับซ้อนเกินไปสำหรับการทำเช่นนี้ ในความเป็นจริงมันใหญ่และซับซ้อนมากจนมีหนังสือ C ++ ที่แย่มากๆ และเราไม่ได้พูดถึงสไตล์ที่ไม่ดี แต่สิ่งต่าง ๆ เช่นข้อผิดพลาดทางกีฬาที่เห็นได้ชัดอย่างเห็นได้ชัดและส่งเสริมรูปแบบการเขียนโปรแกรมที่ไม่ดีอย่างแท้จริง

โปรดแก้ไขคำตอบที่ได้รับการยอมรับที่จะให้หนังสือที่มีคุณภาพและระดับทักษะตัวอย่าง - โดยเฉพาะอย่างยิ่ง หลังจาก การพูดคุยของคุณนอกจากนี้ในที่ C ++ ห้องแชท (ผู้ปฏิบัติงานประจำอาจเลิกงานของคุณอย่างไร้ความปราณีถ้าพวกเขาไม่เห็นด้วยกับคำแนะนำ) เพิ่มคำอธิบายสั้น ๆ / คำอธิบายเกี่ยวกับหนังสือแต่ละเล่มที่คุณได้อ่าน / ได้รับประโยชน์จากส่วนตัว คุณสามารถอภิปรายคุณภาพหัวข้อและอื่น ๆ หนังสือที่ตรงตามเกณฑ์จะถูกเพิ่มเข้าไปในรายการ หนังสือที่มีบทวิจารณ์โดยสมาคมผู้ใช้ C และ C ++ (ACCU) มีลิงก์ไปยังบทวิจารณ์

* หมายเหตุ: คำถามที่พบบ่อยและแหล่งข้อมูลอื่น ๆ สามารถพบได้ในข้อมูลแท็ก C ++และต่ำกว่า.

คำตอบ:


4889

ผู้เริ่ม

เกริ่นนำไม่มีประสบการณ์การเขียนโปรแกรมมาก่อน

  • C ++ Primer * (Stanley Lippman, Josée Lajoie และ Barbara E. Moo) (อัปเดตสำหรับ C ++ 11 ) มาที่หน้า 1k นี่เป็นการแนะนำอย่างละเอียดเกี่ยวกับ C ++ ที่ครอบคลุมทุกอย่างในภาษาในรูปแบบที่เข้าถึงได้ง่ายมาก และในรายละเอียดที่ดี รุ่นที่ห้า (เปิดตัว 16 สิงหาคม 2012) ครอบคลุม C ++ 11 [รีวิว]

  • การเขียนโปรแกรม: หลักการและการปฏิบัติโดยใช้ C ++ (Bjarne Stroustrup, 2nd Edition - 25 พฤษภาคม 2014) (อัปเดตสำหรับ C ++ 11 / C ++ 14 ) การแนะนำการเขียนโปรแกรมโดยใช้ C ++ โดยผู้สร้างภาษา การอ่านที่ดีถือว่าไม่มีประสบการณ์การเขียนโปรแกรมมาก่อน แต่ไม่ได้มีไว้สำหรับผู้เริ่มต้นเท่านั้น

* เพื่อไม่ให้สับสนกับC ++ Primer Plus (Stephen Prata) ที่มีรีวิวน้อยมาก

เกริ่นนำด้วยประสบการณ์การเขียนโปรแกรมก่อนหน้า

  • ทัวร์ C ++ (Bjarne Stroustrup) (รุ่นที่ 2 สำหรับ C ++ 17 ) "ทัวร์" เป็นภาพรวมการสอนที่รวดเร็ว (ประมาณ 180 หน้าและ 14 บท) ของภาพรวมของ C ++ มาตรฐานทั้งหมด (ภาษาและไลบรารีมาตรฐานและการใช้ C ++ 11 ) อยู่ในระดับสูงพอสมควรสำหรับผู้ที่รู้จัก C ++ หรืออย่างน้อยก็เป็นโปรแกรมเมอร์ที่มีประสบการณ์ หนังสือเล่มนี้เป็นเนื้อหาเพิ่มเติมของบทที่ 2-5 ของภาษา C ++ Programming, 4th edition

  • เร่ง C ++ (Andrew Koenig และ Barbara Moo, 1st Edition - 24 สิงหาคม 2000) โดยทั่วไปแล้วจะครอบคลุมพื้นที่เดียวกันกับ C ++ Primerแต่ทำในพื้นที่ที่สี่ ส่วนใหญ่เป็นเพราะไม่ได้พยายามแนะนำโปรแกรมแต่เป็นการแนะนำ C ++สำหรับผู้ที่เคยตั้งโปรแกรมในภาษาอื่นมาก่อน มันมีเส้นโค้งการเรียนรู้ที่ชัน แต่สำหรับผู้ที่สามารถรับมือกับมันได้มันเป็นการแนะนำภาษาที่กะทัดรัดมาก (ในอดีตมันทำลายพื้นใหม่โดยการเป็นหนังสือเล่มแรกของผู้เริ่มต้นที่จะใช้วิธีการที่ทันสมัยในการสอนภาษา) แม้จะมีสิ่งนี้ C ++ มันสอนเป็น C ++ 98 ล้วนๆ [รีวิว]

ปฏิบัติที่ดีที่สุด

  • C ++ ที่มีประสิทธิภาพ (Scott Meyers, รุ่นที่ 3 - 22 พฤษภาคม 2005) สิ่งนี้ถูกเขียนขึ้นโดยมีจุดประสงค์ในการเป็นนักเขียนหนังสือ C ++ ที่ดีที่สุดที่ควรอ่านและประสบความสำเร็จ รุ่นก่อนหน้านี้มีจุดประสงค์เพื่อโปรแกรมเมอร์ที่มาจาก C รุ่นที่สามเปลี่ยนแปลงสิ่งนี้และเป้าหมายโปรแกรมเมอร์ที่มาจากภาษาเช่น Java มันแสดงกฎของหัวแม่มือที่ง่ายต่อการจดจำ 50 กฎพร้อมเหตุผลในสไตล์ที่เข้าถึงได้ง่าย (และสนุกสนาน) สำหรับ C ++ 11 และ C ++ 14 ตัวอย่างและปัญหาเล็กน้อยล้าสมัยและควรใช้ C ++ ที่มีประสิทธิภาพในปัจจุบัน [รีวิว]

  • Effective Modern C ++ (Scott Meyers) นี่เป็นรุ่นใหม่ของ Effective C ++โดยมีวัตถุประสงค์เพื่อโปรแกรมเมอร์ C ++ ที่เปลี่ยนจาก C ++ 03 เป็น C ++ 11 และ C ++ 14

  • STL ที่มีประสิทธิภาพ (Scott Meyers) สิ่งนี้มีจุดมุ่งหมายที่จะทำเช่นเดียวกันกับส่วนของไลบรารีมาตรฐานที่มาจาก STL สิ่งที่ Effective C ++ทำกับภาษาโดยรวม: มันแสดงกฎของหัวแม่มือพร้อมกับเหตุผลของพวกเขา [รีวิว]

สื่อกลาง

  • ที่มีประสิทธิภาพมากกว่า C ++ (สกอตต์เมเยอร์ส) แม้กฎระเบียบมากขึ้นของหัวแม่มือกว่าที่มีประสิทธิภาพ C ไม่สำคัญเท่ากับเล่มแรก แต่ยังดีที่จะรู้

  • เจ๋ง C ++ (Herb Sutter) นำเสนอเป็นชุดของจิ๊กซอว์นี่เป็นหนึ่งในการอภิปรายที่ดีที่สุดและละเอียดถี่ถ้วนเกี่ยวกับการจัดการทรัพยากรที่เหมาะสมและความปลอดภัยยกเว้นใน C ++ ผ่านการจัดหาทรัพยากรคือการเริ่มต้น (RAII) นอกเหนือจากการครอบคลุมเชิงลึกของความหลากหลาย ของหัวข้ออื่น ๆ รวมถึงสำนวน pimpl, การค้นหาชื่อ, การออกแบบชั้นดีและโมเดลหน่วยความจำ C ++ [รีวิว]

  • เจ๋ง C ++ เพิ่มเติม (Herb Sutter) ครอบคลุมหัวข้อความปลอดภัยเพิ่มเติมยกเว้นที่ไม่ครอบคลุมในเจ๋ง C ++เพิ่มเติมนอกเหนือจากการอภิปรายของการเขียนโปรแกรมเชิงวัตถุที่มีประสิทธิภาพใน C ++ และการใช้ STL ที่ถูกต้อง [รีวิว]

  • สไตล์ C ++ ที่ยอดเยี่ยม (Herb Sutter) กล่าวถึงการเขียนโปรแกรมทั่วไปการปรับให้เหมาะสมและการจัดการทรัพยากร หนังสือเล่มนี้ยังมีการแสดงออกที่ยอดเยี่ยมของวิธีการเขียนรหัสแบบแยกส่วนใน C ++ โดยใช้ฟังก์ชั่นที่ไม่ใช่สมาชิกและหลักการความรับผิดชอบเดียว [รีวิว]

  • มาตรฐานการเข้ารหัส C ++ (Herb Sutter และ Andrei Alexandrescu) "มาตรฐานการเข้ารหัส" ที่นี่ไม่ได้หมายความว่า "ฉันควรเว้นวรรคกี่ช่องสำหรับโค้ดของฉัน" หนังสือเล่มนี้มีแนวปฏิบัติที่ดีที่สุด 101 ข้อใช้สำนวนและข้อผิดพลาดทั่วไปที่ช่วยให้คุณเขียนรหัส C ++ ที่ถูกต้องเข้าใจและมีประสิทธิภาพ [รีวิว]

  • c ++ แม่: The Complete Guide (เดวิด Vandevoorde และ Nicolai M. Josuttis) นี่คือหนังสือเกี่ยวกับแม่แบบที่พวกเขามีอยู่ก่อน C ++ 11 มันครอบคลุมทุกอย่างตั้งแต่พื้นฐานจนถึงเทมเพลต metaprogramming ขั้นสูงสุดบางส่วนและอธิบายทุกรายละเอียดว่าเทมเพลตทำงานอย่างไร (ทั้งแนวคิดและวิธีการใช้งาน) และอธิบายข้อผิดพลาดทั่วไป มีบทสรุปที่ยอดเยี่ยมของกฎข้อกำหนดหนึ่งข้อ (ODR) และการแก้ปัญหาการโอเวอร์โหลดในภาคผนวก ฉบับที่สองครอบคลุม C ++ 11, C ++ 14 และ C ++ 17 ได้รับการตีพิมพ์แล้ว [รีวิว]

  • C ++ 17 - The Complete Guide (Nicolai M. Josuttis) หนังสือเล่มนี้อธิบายคุณสมบัติใหม่ทั้งหมดที่นำมาใช้ใน C ++ 17 Standard ซึ่งครอบคลุมทุกอย่างจากสิ่งง่าย ๆ เช่น 'Inline Variables', 'constexpr ถ้า' ไปจนถึง 'Polymorphic ทรัพยากรหน่วยความจำ 'และ' ใหม่และลบด้วยข้อมูลที่เกินขอบเขต '


สูง

  • การออกแบบ C ++ สมัยใหม่ (Andrei Alexandrescu) หนังสือเล่มใหม่เกี่ยวกับเทคนิคการเขียนโปรแกรมขั้นสูงทั่วไป แนะนำการออกแบบตามนโยบายรายการประเภทและสำนวนการเขียนโปรแกรมพื้นฐานขั้นพื้นฐานจากนั้นอธิบายถึงรูปแบบการออกแบบที่มีประโยชน์มากมาย (รวมถึงการจัดสรรวัตถุขนาดเล็ก, functors, โรงงาน, ผู้เยี่ยมชมและหลายวิธี) สามารถนำไปใช้ได้อย่างมีประสิทธิภาพเป็นโมดูล . [รีวิว]

  • เทมเพลตการเขียนโปรแกรม C ++ เทมเพลต (David Abrahams and Aleksey Gurtovoy)

  • C ++ Concurrency In Action (Anthony Williams) หนังสือที่ครอบคลุมการสนับสนุนการทำงานพร้อมกันของ C ++ 11 รวมถึงเธรดไลบรารี, ไลบรารี atomics, โมเดลหน่วยความจำ C ++, ล็อคและ mutexes รวมถึงปัญหาการออกแบบและการดีบักแอพพลิเคชันแบบมัลติเธรด ฉบับที่สองครอบคลุม C ++ 14 และ C ++ 17 ได้รับการตีพิมพ์แล้ว

  • Metaprogramming C ++ ขั้นสูง (Davide Di Gennaro) คู่มือ Pre-C ++ 11 ของเทคนิค TMP เน้นการฝึกฝนมากกว่าทฤษฎี มีเกร็ดเล็กเกร็ดน้อยหนึ่งเล่มในหนังสือเล่มนี้ซึ่งบางส่วนถูกทำให้ล้าสมัยโดยลักษณะนิสัย แต่เทคนิคนั้นมีประโยชน์ที่จะรู้ หากคุณสามารถรับมือกับการจัดรูปแบบ / การแก้ไขที่แปลกประหลาดได้ง่ายกว่าที่จะอ่านมากกว่า Alexandrescu และเนื้อหาที่คุ้มค่ามากกว่า สำหรับนักพัฒนาที่มีประสบการณ์มากขึ้นมีโอกาสดีที่คุณสามารถเลือกบางอย่างเกี่ยวกับมุมมืดของ C ++ (มุมแหลม) ที่มักจะเกิดจากประสบการณ์ที่ครอบคลุมเท่านั้น

  • ฟังก์ชั่นการเขียนโปรแกรมใน C ++ (Ivan Čukić) หนังสือแนะนำผู้อ่านเกี่ยวกับกระบวนทัศน์การทำงานใน C ++ ที่ทันสมัย มันครอบคลุมด้านทฤษฎีและโค้ดด้วยตัวอย่างและไดอะแกรมที่หลากหลาย ผู้เขียนมีประสบการณ์ในการสอนและใช้เพื่อแนะนำผู้อ่านอย่างราบรื่นผ่านแง่มุมต่าง ๆ ของการเขียนโปรแกรมการทำงาน


รูปแบบการอ้างอิง - ทุกระดับ

  • ภาษาโปรแกรม C ++ (Bjarne Stroustrup) (อัพเดตสำหรับ C ++ 11 ) คลาสสิกเบื้องต้นสำหรับ C ++ โดยผู้สร้าง เขียนขนานไปกับ K&R แบบคลาสสิกสิ่งนี้อ่านมากเหมือนจริงและครอบคลุมทุกอย่างตั้งแต่ภาษาหลักไปจนถึงห้องสมุดมาตรฐานไปจนถึงกระบวนทัศน์การเขียนโปรแกรมไปจนถึงปรัชญาของภาษา [รีวิว]หมายเหตุ: ทุกรุ่นของมาตรฐาน C ++ มีการติดตามในคำถามนี้:ฉันจะหามาตรฐาน C ++ ปัจจุบันได้ที่ไหน

  • ห้องสมุดสอนภาษา C ++ มาตรฐานและเอกสารอ้างอิง (Nicolai Josuttis) (การปรับปรุงสำหรับ C ++ 11 )แนะนำและการอ้างอิงสำหรับ ++ ห้องสมุด C มาตรฐาน รุ่นที่สอง (เผยแพร่เมื่อวันที่ 9 เมษายน 2012) ครอบคลุม C ++ 11 [รีวิว]

  • C ++ IO Streams and Locales (Angelika Langer และ Klaus Kreft) มีน้อยมากที่จะพูดเกี่ยวกับหนังสือเล่มนี้ยกเว้นว่าถ้าคุณต้องการที่จะรู้อะไรเกี่ยวกับกระแสและสถานที่แล้วนี่คือที่เดียวที่จะหาคำตอบที่ชัดเจน [รีวิว]

C ++ 11/14/17 / …

  • c ++ 11 / 14 / 17มาตรฐาน (INCITS / ISO / IEC 14882: 2011/2014/2017)นี้แน่นอนเป็นผู้ตัดสินสุดท้ายของทุกสิ่งที่เป็นหรือไม่ C ++ อย่างไรก็ตามโปรดทราบว่ามันมีจุดประสงค์เพื่อเป็นข้อมูลอ้างอิงสำหรับผู้ใช้ที่มีประสบการณ์ซึ่งเต็มใจสละเวลาและความพยายามอย่างมากในการทำความเข้าใจ มาตรฐาน C ++ 17 ได้รับการเผยแพร่ในรูปแบบอิเล็กทรอนิกส์สำหรับ 198 Swiss Francs

  • มีมาตรฐาน C ++ 17 แต่ดูเหมือนจะไม่ได้อยู่ในรูปแบบที่ประหยัด - โดยตรงจาก ISO ซึ่งมีค่าใช้จ่าย 198 ฟรังก์สวิส (ประมาณ $ 200 US) สำหรับคนส่วนใหญ่ร่างสุดท้ายก่อนที่มาตรฐานจะมากเกินพอ (และฟรี) หลายคนจะชอบแบบร่างที่ใหม่กว่าและบันทึกคุณสมบัติใหม่ที่น่าจะรวมอยู่ใน C ++ 20

  • ภาพรวมของ C ++ ใหม่ (C ++ 11/14) (PDF เท่านั้น) (Scott Meyers) (อัปเดตสำหรับ C ++ 14 ) เอกสารประกอบการนำเสนอ (สไลด์และบันทึกการบรรยาย) ของหลักสูตรฝึกอบรมสามวันที่เสนอโดย Scott Meyers ผู้เป็นที่เคารพนับถืออย่างสูงใน C ++ แม้ว่ารายการจะสั้น แต่คุณภาพก็สูง

  • C แนวทางหลัก ++ (C ++ 11/14/17 / ... ) (แก้ไขโดย Bjarne Stroustrup และ Sutter สมุนไพร) เป็นเอกสารออนไลน์พัฒนาประกอบด้วยกำหนดแนวทางสำหรับการใช้ที่ทันสมัย c ++ ดี แนวทางนี้มุ่งเน้นที่ประเด็นที่ค่อนข้างสูงกว่าเช่นอินเตอร์เฟสการจัดการทรัพยากรการจัดการหน่วยความจำและการทำงานพร้อมกันที่มีผลต่อสถาปัตยกรรมแอปพลิเคชันและการออกแบบไลบรารี โครงการนี้ประกาศที่ CppCon'15 โดย Bjarne Stroustrup และคนอื่น ๆและยินดีรับการสนับสนุนจากชุมชน แนวทางส่วนใหญ่จะเสริมด้วยเหตุผลและตัวอย่างเช่นเดียวกับการอภิปรายของการสนับสนุนเครื่องมือที่เป็นไปได้ กฎจำนวนมากได้รับการออกแบบมาโดยเฉพาะเพื่อให้ตรวจสอบได้โดยอัตโนมัติโดยเครื่องมือวิเคราะห์แบบคงที่

  • The C ++ Super-FAQ (Marshall Cline, Bjarne Stroustrup และอื่น ๆ ) เป็นความพยายามของ Standard C ++ Foundation ในการรวมคำถามที่พบบ่อย C ++ ที่ดูแลไว้ก่อนหน้านี้โดย Marshall Cline และ Bjarne Stroustrup และยังรวมการมีส่วนร่วมใหม่ รายการส่วนใหญ่เน้นปัญหาในระดับกลางและมักเขียนด้วยน้ำเสียงตลก มีบางรายการที่อาจไม่ทันสมัยกับรุ่นล่าสุดของมาตรฐาน C ++

  • cppreference.com (C ++ 03/11/14/17 / …) (ริเริ่มโดย Nate Kohl) เป็นวิกิที่สรุปคุณสมบัติหลักภาษาพื้นฐานและมีเอกสารที่กว้างขวางของไลบรารีมาตรฐาน C ++ เอกสารมีความแม่นยำมาก แต่อ่านง่ายกว่าเอกสารมาตรฐานอย่างเป็นทางการและให้การนำทางที่ดีขึ้นเนื่องจากลักษณะของวิกิ โครงการเอกสารทุกเวอร์ชันของมาตรฐาน C ++ และไซต์อนุญาตให้กรองการแสดงผลสำหรับเวอร์ชันเฉพาะ โครงการนี้ได้นำเสนอโดยเนทตาที่ CppCon'14


คลาสสิก / เก่า

หมายเหตุ:ข้อมูลบางอย่างที่อยู่ในหนังสือเหล่านี้อาจไม่ทันสมัยหรือไม่ได้รับการพิจารณาว่าเป็นการปฏิบัติที่ดีที่สุดอีกต่อไป

  • การออกแบบและวิวัฒนาการของ C ++ (Bjarne Stroustrup) หากคุณต้องการที่จะรู้ว่าทำไมภาษาเป็นอย่างที่เป็นอยู่หนังสือเล่มนี้เป็นที่ที่คุณจะพบคำตอบ สิ่งนี้ครอบคลุมทุกอย่างก่อนมาตรฐานของ C ++

  • Ruminations on C ++ - (Andrew Koenig and Barbara Moo) [รีวิว]

  • รูปแบบการเขียนโปรแกรม C ++ ขั้นสูง (James Coplien)ขั้นสูงของการเคลื่อนไหวของรูปแบบซึ่งจะอธิบาย "สำนวนเฉพาะ" C ++ จำนวนมาก มันเป็นหนังสือที่ดีมากและอาจคุ้มค่าที่จะอ่านถ้าคุณสามารถเผื่อเวลาได้ แต่ค่อนข้างเก่าและไม่ทันสมัยกับ C ++ ปัจจุบัน

  • การออกแบบซอฟต์แวร์ C ++ ขนาดใหญ่ (John Lakos) Lakos อธิบายเทคนิคในการจัดการโครงการซอฟต์แวร์ C ++ ขนาดใหญ่มาก แน่นอนอ่านดีถ้ามันได้ถึงวันที่ มันถูกเขียนมานานก่อน C ++ 98 และขาดคุณสมบัติหลายประการ (เช่น namespaces) ที่สำคัญสำหรับโครงการขนาดใหญ่ หากคุณต้องการทำงานในโครงการซอฟต์แวร์ C ++ ขนาดใหญ่คุณอาจต้องการอ่านแม้ว่าคุณจะต้องใช้เกลือมากกว่าเม็ด หนังสือเล่มแรกของรุ่นใหม่จะถูกปล่อยออกมาใน 2019

  • ภายในโมเดลวัตถุ C ++ (Stanley Lippman) หากคุณต้องการทราบว่ามีการใช้งานฟังก์ชันสมาชิกเสมือนอย่างไรและวิธีการวางวัตถุพื้นฐานในหน่วยความจำในสถานการณ์การสืบทอดหลายแบบและสิ่งนี้มีผลต่อประสิทธิภาพอย่างไรนี่คือที่ที่คุณจะ ค้นหาการสนทนาอย่างละเอียดของหัวข้อดังกล่าว

  • คู่มืออ้างอิง C ++ ที่มีคำอธิบายประกอบ (Bjarne Stroustrup, Margaret A. Ellis) หนังสือเล่มนี้ล้าสมัยเนื่องจากข้อเท็จจริงที่ว่าสำรวจรุ่น C ++ 2.0 ปี 1989 - เทมเพลตข้อยกเว้นเนมสเปซและวรรณะใหม่ยังไม่ได้แนะนำ อย่างไรก็ตามการกล่าวว่าหนังสือเล่มนี้ผ่านมาตรฐาน C ++ ทั้งหมดในเวลาที่อธิบายถึงเหตุผลการใช้งานที่เป็นไปได้และคุณสมบัติของภาษา นี่ไม่ใช่หนังสือสำหรับเรียนรู้หลักการและรูปแบบการเขียนโปรแกรมใน C ++ แต่ต้องเข้าใจทุกแง่มุมของภาษา C ++

  • คิดใน C ++ (Bruce Eckel, 2nd Edition, 2000) สองเล่ม; เป็นรูปแบบการกวดวิชาฟรีชุดของหนังสือระดับบทนำ ดาวน์โหลด:เล่มที่ 1 ,ฉบับ 2 โชคไม่ดีที่พวกเขาถูกทำลายด้วยข้อผิดพลาดเล็กน้อย (เช่นการบำรุงรักษาขมับนั้นเป็นไปโดยอัตโนมัติconst) โดยไม่มีรายการ errata อย่างเป็นทางการ บางส่วน 3ปาร์ตี้คหบดีที่มีอยู่ใน ( http://www.computersciencelab.com/Eckel.htm ) แต่ก็เห็นได้ชัดว่าไม่รักษา

  • วิทยาศาสตร์และวิศวกรรม C ++: คำแนะนำเกี่ยวกับเทคนิคขั้นสูงและตัวอย่าง (John Barton และ Lee Nackman) เป็นหนังสือที่ครอบคลุมและมีรายละเอียดมากซึ่งพยายามอธิบายและใช้ประโยชน์จากคุณลักษณะทั้งหมดที่มีใน C ++ ในบริบทของวิธีการเชิงตัวเลข มันแนะนำเทคนิคใหม่หลายครั้งในเวลาเช่น Curiously Recurring Template Pattern (CRTP หรือที่รู้จักในชื่อ Barton-Nackman trick) มันเป็นผู้บุกเบิกเทคนิคต่าง ๆ เช่นการวิเคราะห์มิติและการสร้างความแตกต่างโดยอัตโนมัติ มันมาพร้อมกับโค้ดที่คอมไพล์และมีประโยชน์มากมายตั้งแต่ตัวแยกวิเคราะห์นิพจน์ไปจนถึงเสื้อคลุม Lapack รหัสยังคงมีอยู่ที่นี่: http://www.informit.com/store/scientific-and-engineering-c-plus-plus-an-introduction-9780201533934. น่าเสียดายที่หนังสือมีลักษณะค่อนข้างล้าสมัยในรูปแบบและคุณสมบัติ C ++ อย่างไรก็ตามมันเป็นทัวร์ที่ไม่น่าเชื่อในตอนนั้น (1994 pre-STL) บทเกี่ยวกับการสืบทอดพลวัตมีความซับซ้อนเล็กน้อยที่จะเข้าใจและไม่มีประโยชน์มาก หนังสือคลาสสิกฉบับปรับปรุงที่รวมความหมายของการย้ายและบทเรียนที่เรียนรู้จาก STL จะดีมาก


402
@G Rassovsky: หนังสือทั้งหมดที่สัญญาว่าจะสอน X ใน Y ชั่วโมง ตัวอย่างเช่นเรียนรู้ C ++ ใน 24 ชั่วโมง ฉันเชื่อว่าหนังสือเหล่านี้หลีกเลี่ยงได้ดีกว่า
akhil_mittal

115
ฉันเกลียดที่จะเหยียบรองเท้าของใครก็ได้ แต่ฉันไม่แนะนำ "ความคิดในภาษา C ++" ของบรูซเอคเคลแม้ว่าฉันจะเคารพผู้แต่งในการเผยแพร่เนื้อหาของเขาทางออนไลน์ฟรี มุมมองของหนังสือเล่มนี้ชี้ให้เห็นถึงการใช้งานโปรแกรม C ++ และ "เชิงวัตถุ" ที่ค่อนข้างต่ำหรือไม่มีประสิทธิภาพซึ่งคล้ายกับแอพพลิเคชั่นที่ไม่ดีของรูปแบบการออกแบบของ GoF ฉันพบว่ามันเป็นหนังสือเกริ่นนำที่น่าสนใจสำหรับการเขียนโปรแกรมโดยทั่วไป แต่เมื่อมีคนเริ่มคุ้นเคยกับการเขียนโปรแกรมและ (โดยเฉพาะ) วิทยาศาสตร์คอมพิวเตอร์โดยรวมฉันพบว่าหนังสือที่คิดในแง่ OOP "คลาสสิค" ล้วนเป็นอันตรายต่อการศึกษา

30
@ G.Rassovsky บนเว็บไซต์ accu.org มีหมวดบทวิจารณ์หนังสือพร้อมเรทติ้ง คุณสามารถค้นหา C ++ ได้ หลายคนถูกจัดอันดับว่า "ไม่แนะนำ"
Zaphod Beeblebrox

83
เร่ง C ++มาจาก 2000 ฉันควรกังวลว่ามันล้าสมัยหรือไม่?
AutonomousApps

60
ฉันคิดว่ามันจะเป็นการดีถ้าจะใส่วันที่ที่ตีพิมพ์สำหรับฉบับ (ด้วยหมายเลขรุ่นที่เกี่ยวข้อง)
Aaron Hall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.