c++ - مميزات لغة السي بلس بلس محلولة



دليل كتاب C++ نهائية وقائمة (1)

يحاول هذا السؤال جمع اللآلئ القليلة بين عشرات الكتب السيئة C ++ التي تنشر كل عام.

بخلاف العديد من لغات البرمجة الأخرى ، والتي يتم التقاطها في الغالب أثناء التنقل من البرامج التعليمية الموجودة على الإنترنت ، قليل منها قادر على التقاط C ++ بسرعة دون دراسة كتاب C ++ مكتوب بشكل جيد. إنها طريقة كبيرة ومعقدة للغاية للقيام بذلك. في الواقع ، إنها كبيرة ومعقدة إلى حد كبير ، وهناك العديد من كتب C ++ سيئة للغاية . ونحن لا نتحدث عن أسلوب سيء ، ولكن أشياء مثل الرياضة أخطاء واضحة واضحة للعيان وتشجع أساليب البرمجة السيئة للغاية .

يرجى تعديل الإجابة المقبولة لتقديم كتب عالية الجودة ومستوى مهارة تقريبي - يفضل بعد مناقشة إضافتك في غرفة الدردشة C ++ . (قد يوقف النظامي عمداً عملك بلا رحمة إذا لم يوافقوا على توصية.) أضف إعلانًا قصيرًا / وصفًا عن كل كتاب قرأته / استفدت منه شخصيًا. لا تتردد في مناقشة الجودة والعناوين ، وما إلى ذلك. ستتم إضافة الكتب التي تفي بالمعايير إلى القائمة. الكتب التي لديها مراجعات من قبل جمعية C و C ++ المستخدمين (ACCU) لديهم روابط لهذا الاستعراض.

* ملاحظة: يمكن العثور على الأسئلة الشائعة والموارد الأخرى في معلومات علامة C ++ وتحت c ++ - faq .

https://code.i-harness.com


مبتدئ

تمهيدية ، لا خبرة برمجة سابقة

  • C ++ Primer * (Stanley Lippman، Josée Lajoie، و Barbara E. Moo) ( تم تحديثه لـ C ++ 11 ) في صفحة 1k ، هذه مقدمة شاملة جدًا في C ++ تغطي كل شيء باللغة بلغة يسهل الوصول إليها وبتفصيل كبير. تغطي الطبعة الخامسة (الصادرة في 16 أغسطس 2012) C ++ 11. [Review]

  • البرمجة: المبادئ والممارسة باستخدام C ++ (Bjarne Stroustrup ، الإصدار الثاني - 25 مايو 2014) ( تم تحديث C ++ 11 / C ++ 14 ) مقدمة للبرمجة باستخدام C ++ من خالق اللغة. قراءة جيدة ، تفترض عدم وجود خبرة برمجة سابقة ، ولكنها ليست للمبتدئين فقط.

* يجب عدم الخلط بينه وبين C ++ Primer Plus (Stephen Prata) ، مع review أقل تفضيلاً.

تمهيدية ، مع تجربة برمجة سابقة

  • جولة في C ++ (Bjarne Stroustrup) ( الإصدار الثاني لـ C ++ 17 ) إن "الجولة" هي نظرة عامة سريعة (حوالي 180 صفحة و 14 فصلاً) عن نظرة عامة حول كل معيار C ++ (اللغة والمكتبة القياسية ، واستخدام C ++ 11 ) بمستوى مرتفع إلى حد ما للأشخاص الذين يعرفون C ++ أو على الأقل مبرمجين ذوي خبرة. هذا الكتاب هو نسخة موسعة من المادة التي تشكل الفصول 2-5 من لغة برمجة C ++ ، الطبعة الرابعة.

  • Accelerated C ++ (Andrew Koenig and Barbara Moo، 1st Edition - August 24، 2000) يغطي هذا الأساس أساسًا تمامًا مثل C ++ Primer ، ولكنه يفعل ذلك في ربع مساحته. هذا إلى حد كبير لأنه لا يحاول أن يكون مقدمة للبرمجة ، بل هو مقدمة لـ C ++ للأشخاص الذين قاموا ببرمجتها مسبقًا بلغة أخرى. لديه منحنى تعلم أكثر حدة ، ولكن بالنسبة لأولئك الذين يستطيعون التعامل مع هذا ، فهو مقدمة مدمجة للغاية للغة. (من الناحية التاريخية ، فقد أحدثت طريقا جديدا من خلال كونها أول كتاب للمبتدئين يستخدمون منهجًا حديثًا لتدريس اللغة). وعلى الرغم من ذلك ، فإن C ++ التي يعلّمها هي C ++ 98 بحتة. [Review]

أفضل الممارسات

  • C ++ (سكوت مايرز ، الطبعة الثالثة - مايو 22 ، 2005) تمت كتابة هذا الكتاب بهدف أن يكون أفضل مبرمج ثاني C ++ يجب أن يقرأ ، وقد نجح. كانت الطبعات السابقة موجهة للمبرمجين القادمين من لغة C ، الطبعة الثالثة تغير هذا الأمر وتستهدف المبرمجين القادمين من لغات مثل Java. إنه يقدم ~ 50 من قواعد الإبهام سهلة التذكر إلى جانب الأساس المنطقي في أسلوب سهل الوصول (وممتع). بالنسبة إلى C ++ 11 و C ++ 14 ، فإن الأمثلة والقضايا القليلة قديمة وغير مفضلة. [Review]

  • برنامج C ++ الحديث الفعال (Scott Meyers) هذا هو الإصدار الجديد من برنامج Effective C ++ ، والذي يهدف إلى المبرمجين C ++ الذين يقومون بالانتقال من C ++ 03 إلى C ++ 11 و C ++ 14.

  • STL (Scott Meyers) هذا يهدف إلى القيام بنفس الشيء بالنسبة إلى جزء من المكتبة القياسية القادمة من STL ما فعله C ++ الفعال للغة ككل: فهو يقدم قواعد الإبهام مع الأساس المنطقي. [Review]

متوسط

  • أكثر فعالية C ++ (Scott Meyers) المزيد من القواعد الإبهام من Effective C ++ . ليست مهمة مثل تلك الموجودة في الكتاب الأول ، ولكن لا يزال من الجيد معرفة ذلك.

  • استثنائية C ++ (Herb Sutter) قدمت كمجموعة من الألغاز ، وهذا واحد من أفضل ومناقشات شاملة لإدارة الموارد المناسبة واستثناء السلامة في C ++ من خلال اقتناء الموارد هو التهيئة (RAII) بالإضافة إلى تغطية متعمقة لمجموعة متنوعة من مواضيع أخرى بما في ذلك لغة pimpl والبحث عن اسم وتصميم فئة جيد ونموذج ذاكرة C ++. [Review]

  • أكثر استثنائية C ++ (Herb Sutter) يغطي مواضيع إضافية خاصة بالسلامة غير المشمولة في C ++ استثنائية ، بالإضافة إلى مناقشة البرمجة الفعالة للكائنات في C ++ والاستخدام الصحيح لـ STL. [Review]

  • نمط C ++ استثنائي (Herb Sutter) يناقش البرمجة العامة والتحسين وإدارة الموارد ؛ يحتوي هذا الكتاب أيضًا على عرض ممتاز لكيفية كتابة التعليمات البرمجية النمطية في C ++ باستخدام وظائف غير الأعضاء ومبدأ المسؤولية الوحيد. [Review]

  • معايير C ++ Coding (Herb Sutter and Andrei Alexandrescu) لا تعني "معايير الترميز" هنا "كم عدد المسافات التي يجب أن أضعها في وضع الرمز الخاص بي؟" يحتوي هذا الكتاب على 101 أفضل الممارسات والتعابير والمصاعب الشائعة التي يمكن أن تساعدك على الكتابة الصحيحة ، مفهومة ، وكفاءة رمز C ++. [Review]

  • قوالب C ++: الدليل الكامل (David Vandevoorde و Nicolai M. Josutis) هذا هو الكتاب عن القوالب التي كانت موجودة قبل C ++ 11. فهو يغطي كل شيء بدءًا من الأساسيات إلى بعض أكثر طرق البرمجة المتقدمة ، ويشرح كل تفاصيل كيفية عمل النماذج (من الناحية المفاهيمية وكيف يتم تنفيذها) ويناقش العديد من المخاطر الشائعة. لديه ملخصات ممتازة لقاعدة تعريف واحد (ODR) ودقة الحمولة الزائدة في الملاحق. وقد نشرت بالفعل طبعة ثانية تغطي C ++ 11 و C ++ 14 و C ++ 17. [Review]

المتقدمة

  • تصميم C ++ الحديث (Andrei Alexandrescu) كتاب رائد عن تقنيات البرمجة العامة المتقدمة. يقدم تصميمًا قائمًا على السياسة ، وقوائم من النوع ، وتعابير برمجة عامة أساسية ، ثم يشرح كيف يمكن تنفيذ العديد من أنماط التصميم المفيدة (بما في ذلك أدوات تخصيص الأشياء الصغيرة ، والمفكات ، والمصانع ، والزائرين ، والطرق المتعددة) بكفاءة ، وبشكل نموذجي ، ونظيفًا باستخدام البرمجة العامة . [Review]

  • C ++ Template Metaprogramming (David Abrahams and Aleksey Gurtovoy)

  • C ++ التزامن في العمل (أنتوني وليامز) كتاب يغطي دعم C ++ 11 التزامن بما في ذلك مكتبة مؤشر الترابط ، مكتبة atomics ، طراز ذاكرة C ++ ، تأمين ومتعكسون ، بالإضافة إلى مشاكل تصميم وتصحيح تطبيقات متعددة مؤشرات ترابط.

  • Advanced C ++ Metaprogramming (Davide Di Gennaro) وقد ركز دليل ما قبل C ++ 11 لتقنيات TMP ، على الممارسة أكثر من النظرية. هناك الكثير من المقتطفات في هذا الكتاب ، وبعضها أصبح قديمًا من حيث النوع ، ولكن من المفيد معرفة هذه التقنيات. إذا كنت تستطيع التكيف مع التنسيق / التحرير الغريب ، فمن الأسهل قراءة من Alexandrescu ، ويمكن القول ، أكثر مكافأة. بالنسبة للمطورين الأكثر خبرة ، هناك فرصة جيدة لأنك قد تلتقط شيئًا عن الزاوية المظلمة من C ++ (quirk) التي عادة ما تأتي فقط من خلال خبرة واسعة.

نمط المرجع - جميع المستويات

  • لغة برمجة C ++ (Bjarne Stroustrup) ( محدثة لـ C ++ 11 ) مقدمة كلاسيكية لـ C ++ من خالقها. مكتوبة بموازاة K & R الكلاسيكي ، هذا في الواقع يقرأ كثيرا مثل ذلك ويغطي كل شيء تقريبا من اللغة الأساسية إلى المكتبة القياسية ، إلى نماذج البرمجة لفلسفة اللغة. [Review] ملاحظة: يتم تعقب جميع إصدارات معيار C ++ في هذا السؤال: أين أجد معيار C ++ الحالي .

  • C ++ Standard Library Tutorial and Reference (Nicolai Josuttis) ( تم تحديث C ++ 11 ) مقدمة ومرجع لمكتبة C ++ القياسية. الطبعة الثانية (تم إصدارها في 9 أبريل 2012) تغطي C ++ 11. [Review]

  • C ++ IO Streams and Locales (Angelika Langer and Klaus Kreft) ليس هناك الكثير مما يمكن قوله عن هذا الكتاب باستثناء أنه إذا كنت تريد معرفة أي شيء عن التدفقات والمواقع ، فهذا هو المكان الوحيد للعثور على إجابات محددة. [Review]

C ++ 11/14/17 / ... المراجع:

  • C ++ 11/14/17 Standard (INCITS / ISO / IEC 14882: 2011/2014/2017) هذا بالطبع هو الحَكَم النهائي لكل ما هو C ++ أو لا. ومع ذلك ، يجب أن تكون مدركًا أنها تهدف فقط إلى الإشارة إلى المستخدمين ذوي الخبرة الراغبين في تخصيص وقت وجهد كبير لفهمه. يتم إصدار معيار C ++ 17 في شكل إلكتروني لـ 198 فرنك سويسري.

  • يتوفر معيار C ++ 17 ، ولكن يبدو أنه ليس في شكل اقتصادي - 17 فإنه يكلف 198 فرنك سويسري (حوالي 200 دولار أمريكي). بالنسبة لمعظم الناس ، فإن المسودة النهائية قبل التوحيد أكثر من كافية (ومجانية). سيفضل الكثيرون مسودة أحدث ، يوثقون ميزات جديدة من المرجح أن يتم تضمينها في C ++ 20.

  • نظرة عامة على C ++ جديد (C ++ 11/14) (PDF فقط) (Scott Meyers) ( تم تحديث C ++ 1y / C ++ 14 ) هذه هي مواد العرض التقديمي (الشرائح وبعض ملاحظات المحاضرة) لثلاثة دورة تدريبية يومية يقدمها سكوت مايرز ، وهو مؤلف يحظى باحترام كبير على C ++. على الرغم من أن قائمة العناصر قصيرة ، فإن الجودة عالية.

  • المبادئ التوجيهية C ++ الأساسية (C ++ 11/14/17 / ...) (تحرير Bjarne Stroustrup and Herb Sutter) هي وثيقة إلكترونية متطورة تتكون من مجموعة من الإرشادات لاستخدام بئر C ++ الحديثة. وتركز المبادئ التوجيهية على القضايا ذات المستوى الأعلى نسبيا ، مثل السطوح البينية وإدارة الموارد وإدارة الذاكرة والتزامن التي تؤثر على تصميم التطبيقات وتصميم المكتبات. تم الإعلان عن المشروع في CppCon'15 من قبل Bjarne Stroustrup وآخرين ويرحب بمساهمات من المجتمع. وتستكمل معظم الإرشادات بأساس منطقي وأمثلة بالإضافة إلى مناقشات حول دعم الأدوات الممكنة. تم تصميم العديد من القواعد على وجه التحديد ليتم التحقق تلقائيًا من خلال أدوات التحليل الثابتة.

  • يعتبر C ++ Super-FAQ (Marshall Cline، Bjarne Stroustrup and others) مجهودًا من قبل مؤسسة Standard C ++ Foundation لتوحيد الأسئلة الشائعة لـ C ++ والتي تم الحفاظ عليها بشكل فردي من قِبل Marshall Cline و Bjarne Stroustrup وإدراج مساهمات جديدة أيضًا. تتناول المواد في الغالب القضايا على مستوى متوسط ​​وغالبا ما تكون مكتوبة بنبرة روح الدعابة. قد لا تكون جميع العناصر محدثة تمامًا مع أحدث إصدار من معيار C ++ حتى الآن.

  • cppreference.com (C ++ 03/11/14/17 / ...) (بدأها Nate Kohl) هو ويكي يلخص ميزات اللغة الأساسية الأساسية ولديه توثيق شامل لمكتبة C ++ القياسية. الوثائق دقيقة للغاية ولكنها أسهل في القراءة من الوثيقة القياسية الرسمية وتوفر إمكانية تنقل أفضل نظرًا لطبيعة الويكي. يوثق المشروع جميع إصدارات معيار C ++ ويسمح الموقع بتصفية العرض لإصدار محدد. قدم المشروع نيت كول في CppCon'14 .

كلاسيكيات / أقدم

ملاحظة: قد لا تكون بعض المعلومات الواردة في هذه الكتب حديثة أو لم تعد تعتبر من أفضل الممارسات.

  • The Design and Evolution of C ++ (Bjarne Stroustrup) إذا كنت تريد أن تعرف سبب اللغة كما هي ، فهذا الكتاب هو المكان الذي تجد فيه الإجابات. هذا يغطي كل شيء قبل توحيد C ++.

  • Ruminations على C ++ - (أندرو كونيج وباربارا مو) [Review]

  • أساليب برمجة C ++ المتقدمة والعبارات (James Coplien) A سابقاً لحركة النموذج ، يصف العديد من "العبارات الاصطلاحية" الخاصة بـ C ++. من المؤكد أنه كتاب جيد جدًا وقد يستحق قراءة ما إذا كان بإمكانك توفير الوقت ، ولكنه قديم جدًا وغير حديث مع C ++ الحالي.

  • تصميم برنامج C ++ Scale (جون لاكوس) يشرح لك لاكوس تقنيات إدارة مشاريع برامج C ++ كبيرة جدًا. بالتأكيد ، قراءة جيدة ، إذا كان فقط حتى الآن. تمت كتابتها قبل وقت طويل من C ++ 98 وتفوت على العديد من الميزات (مثل مساحات الأسماء) الهامة للمشروعات واسعة النطاق. إذا كنت بحاجة إلى العمل في مشروع برنامج C ++ كبير ، فقد ترغب في قراءته ، على الرغم من أنك تحتاج إلى تناول أكثر من حبة ملح معه. من المتوقع صدور المجلد الأول من الطبعة الجديدة في عام 2018 .

  • داخل نموذج كائن C ++ (ستانلي ليبمان) إذا كنت تريد معرفة كيفية تنفيذ وظائف الأعضاء الافتراضية بشكل شائع وكيفية وضع الكائنات الأساسية في الذاكرة في سيناريو تعدد الميراث ، وكيف يؤثر كل هذا على الأداء ، فهذا هو المكان الذي العثور على مناقشات شاملة حول هذه المواضيع.

  • الدليل المرجعي C ++ المشروح (Bjarne Stroustrup، Margaret A. Ellis) هذا الكتاب قد عفا عليه الزمن تمامًا في حقيقة أنه يستكشف إصدار C ++ 2.0 لعام 1989 - لم يتم تقديم القوالب ، الاستثناءات ، مساحات الأسماء والطبقات الجديدة بعد. ومع ذلك ، فإن هذا الكتاب يمر عبر معيار C ++ بالكامل في الوقت الذي يشرح فيه الأساس المنطقي والتطبيقات الممكنة وخصائص اللغة. هذا ليس كتابًا لتعلم مبادئ وأنماط البرمجة على C ++ ، ولكن لفهم كل جانب من جوانب لغة C ++.

  • التفكير في C ++ (بروس إيكيل ، الطبعة الثانية ، 2000). مجلدين عبارة عن مجموعة مجانية من كتب المستوى التعليمي. التنزيلات: المجلد 1 ، المجلد 2 . لسوء الحظ ، يشوبها عدد من الأخطاء التافهة (على سبيل المثال ، الحفاظ على أن const تلقائيًا) ، بدون قائمة رسمية خاطئة. توجد قائمة خطأ غير رسمية لطرف ثالث على http://www.computersciencelab.com/Eckel.htm ( http://www.computersciencelab.com/Eckel.htm ) ، ولكن يبدو أنه لا يتم الاحتفاظ بها.

  • C ++ العلمية والصحية : مقدمة عن التقنيات المتقدمة وأمثلةها (جون بارتون ولي ناكمان) هو كتاب شامل ومفصل للغاية حاول شرح واستخدام جميع الميزات المتوفرة في C ++ ، في سياق الأساليب العددية. قدم في ذلك الوقت العديد من التقنيات الجديدة ، مثل نمط قالب متكرر بفضول (CRTP ، وتسمى أيضا خدعة بارتون-ناكمان). انها رائدة العديد من التقنيات مثل تحليل الأبعاد والتمايز الآلي. وجاءت مع الكثير من رمز compilable ومفيدة ، بدءا من محلل التعبير إلى المجمع Lapack. الرمز لا يزال متاحًا هنا: http://www.informit.com/store/scientific-and-engineering-c-plus-plus-an-introduction-9780201533934 . لسوء الحظ ، أصبحت الكتب قديمة إلى حد ما في الأسلوب وميزات C ++ ، ومع ذلك ، كانت جولة لا تصدق في ذلك الوقت (1994 ، قبل المحكمة الخاصة بلبنان). الفصول حول ميراث الديناميكيات معقدة بعض الشيء في الفهم وليست مفيدة للغاية. نسخة محدّثة من هذا الكتاب الكلاسيكي الذي يتضمن دلالات الانتقال والدروس المستفادة من المحكمة الخاصة بلبنان ستكون لطيفة للغاية.





c++-faq