دورة مكثفة في لغة C++
336 صفحات
Arabic
PDF
4.5

دورة مكثفة في لغة C++

دورة مكثفة في لغة C++

المؤلف:

السنة:

ملخص:

مقدمة

كتاب «Accelerated C++: Practical Programming by Example» (في الترجمة الروسية — «دورة مكثفة في لغة C++») لأندرو كينج وباربرا مو ليس مجرد كتاب دراسي آخر عن لغة البرمجة. إنه بيان لمنهج جديد في تعلم C++ يختلف جذريًا عن المجلدات الكلاسيكية مثل «لغة البرمجة C++» لبيارن ستروستروب. نُشر هذا الكتاب في عام 2000، ولا يزال حتى يومنا هذا واحدًا من أكثر المقدمات فعالية في C++ لأولئك الذين يعرفون بالفعل كيفية البرمجة بلغات أخرى (Java، Python، C#).

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

عن ماذا يتحدث هذا الكتاب؟

على عكس الكتب الدراسية التقليدية التي تبدأ بأنواع البيانات والحلقات والدوال، يغمرك كتاب «Accelerated C++» فورًا في العمل مع المكتبة القياسية (STL). البرنامج الأول يستخدم vector و string و iostream. يفترض المؤلفان أن القارئ على دراية بالفعل بالمفاهيم الأساسية للبرمجة (المتغيرات، الشروط، الحلقات)، لذلك لا يضيعان الوقت في شرح هذه الأساسيات.

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

لمن هذا الكتاب؟

الكتاب مخصص لـ المبرمجين ذوي الخبرة الذين يرغبون في تعلم C++ بسرعة وبجودة عالية. إذا كنت قد عملت بالفعل مع Java أو Python أو C# وتريد الانتقال إلى C++ للبرمجة النظامية أو الألعاب أو التطبيقات عالية التحميل — فهذا هو اختيارك. بالنسبة للمبتدئين الذين بدأوا للتو رحلتهم في البرمجة، سيبدو الكتاب صعبًا وسريعًا جدًا.

ماذا سيتعلم القارئ؟

  • المكتبة القياسية (STL): الحاويات (vector، list، map)، المكررات، الخوارزميات (sort، find، copy).
  • العمل مع السلاسل والإدخال/الإخراج: string، iostream، تدفقات الملفات.
  • البرمجة كائنية التوجه في C++: الفئات، التغليف، الوراثة، تعدد الأشكال.
  • القوالب (templates): كتابة كود عام، دوال وفئات قالبية.
  • إدارة الذاكرة: المؤشرات الذكية (shared_ptr — في الكتاب يُستخدم auto_ptr، وهو قديم لكن المفهوم صحيح)، RAII، منع تسرب الذاكرة.
  • معالجة الاستثناءات: كود آمن، ضمانات الاستثناءات.
  • أساليب C++: النسخ والتبادل (copy-and-swap)، pimpl، أسلوب RAII.
  • تصميم البرامج: التقسيم إلى وحدات، ملفات الرأس، مساحات الأسماء.

نقاط القوة في الكتاب

1. التوجه العملي. كل فصل يحتوي على مثال متكامل يمكن تشغيله وتعديله فورًا. يتم تقديم النظرية بالقدر اللازم لفهم المثال.

2. C++ الحديثة (لوقتها). يعلم الكتاب استخدام STL بدلاً من إعادة اختراع العجلة. يتجنب المؤلفان باستمرار الإنشاءات القديمة (مثل المصفوفات على غرار C، المؤشرات الخام لامتلاك الذاكرة).

3. هيكل منطقي. يتم تقديم المادة بشكل حلزوني: أولاً أمثلة بسيطة، ثم تتعقد، وتُضاف تفاصيل جديدة. هذا يسمح بزيادة التعقيد تدريجيًا دون إرهاق.

4. التركيز على الأساليب. يشرح الكتاب ليس فق

توصيات