ابدأ التجربة المجانية
Searching...
SoBrief
العربية
EnglishEnglish
EspañolSpanish
简体中文Chinese
繁體中文Chinese (Traditional)
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
لغة البرمجة C++
جرّب الوصول الكامل لمدة 3 أيام
افتح الاستماع والمزيد!
متابعة

أهم النقاط

1. لغة C++: لغة للتجريد الأنيق والفعّال

تُعد لغة C++ أداة لتطوير واستخدام التجريدات الأنيقة والفعّالة.

طبيعة مزدوجة. صُممت C++ لتجسر الفجوة بين الوصول المباشر إلى العتاد منخفض المستوى ومجالات المشكلات عالية المستوى. فهي ترث كفاءة لغة C في برمجة الأنظمة، مع إضافة آليات تجريد قوية مستوحاة من Simula. الهدف هو توفير لغة تجمع بين الأداء العالي والتعبير الواضح، مما يمكّن المبرمجين من تمثيل المفاهيم مباشرة في الشيفرة.

  • ربط مباشر بالعتاد
  • آليات تجريد ميسورة التكلفة
  • لغة عامة الاستخدام
  • تميل إلى برمجة الأنظمة

عدم وجود تكلفة زائدة. مبدأ أساسي في تصميم C++ هو "مبدأ عدم دفع ثمن ما لا تستخدمه": لا تتحمل تكلفة أي ميزة لغوية أو تجريد أساسي لم تُستخدم. صُممت الميزات لتكون فعّالة كالشيفرة المكتوبة يدويًا، وهو أمر حاسم لتطبيقات الأداء العالي وبرمجيات البنية التحتية.

  • الكفاءة هي الأساس
  • لا تكاليف ضمنية للميزات غير المستخدمة
  • تمكين الاستخدام في بيئات ذات موارد محدودة

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

  • التعبير المباشر عن الأفكار
  • تمثيل العلاقات
  • فصل الأفكار المستقلة
  • تبسيط الأفكار البسيطة

2. C++ الحديثة (C++11) لغة أفضل

تبدو C++ كلغة جديدة تمامًا.

تطور ملحوظ. شهدت لغة C++ تحسينات جذرية عبر السنوات، وأبرزها معيار C++11. هذه التغييرات جعلت C++ أداة أكثر قوة ورقيًا لكتابة برمجيات عالية الجودة. تتيح C++ الحديثة تعبيرًا أوضح وأبسط وأكثر مباشرة عن الأفكار.

  • C++11 مقابل C++98
  • تعبيرية محسنة
  • أمان وأداء أفضل

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

  • دعم التزامن (std::thread, std::mutex)
  • دلالات النقل (std::move, مراجع rvalue)
  • المؤشرات الذكية (unique_ptr, shared_ptr)
  • الدوال اللامبادا
  • auto و constexpr
  • قوائم التهيئة

اعتماد الأساليب الحديثة. يُشجع المبرمجون بشدة على تبني ميزات وأنماط C++ الحديثة. التمسك بأساليب C++98 أو C القديمة يؤدي إلى شيفرة أقل جودة، أقل قابلية للصيانة، وربما أقل أداءً. يضمن المعيار التوافق مع الإصدارات السابقة، لكن التقدم مستمر.

3. الفصول: أساس التجريد

الميزة اللغوية المركزية في C++ هي الفصل (class).

أنواع معرفة من قبل المستخدم. تُعد الفصول الآلية الأساسية لإنشاء أنواع مخصصة تمثل مفاهيم من مجال المشكلة مباشرة في الشيفرة. مجموعة مختارة بعناية من الفصول تجعل البرنامج أسهل في الفهم، والتفكير فيه، والتعديل عليه.

  • تمثيل المفاهيم كأنواع
  • أساس آليات التجريد
  • تحسين وضوح الشيفرة وقابليتها للصيانة

التغليف. تسمح الفصول بتمييز الواجهة العامة (ما يراه المستخدمون ويستخدمونه) عن تفاصيل التنفيذ الخاصة (أعضاء البيانات والدوال المساعدة). هذا يفرض إخفاء البيانات، ويضمن استخدامًا متسقًا لها، ويسمح بتغيير التنفيذ دون التأثير على شيفرة المستخدم.

  • واجهة عامة
  • تنفيذ خاص
  • إخفاء البيانات
  • فصل المسؤوليات

البناؤون والمدمرون. يحدد البناؤون كيفية تهيئة الكائنات، مما يضمن وجودها في حالة صالحة عند الإنشاء. يحدد المدمرون إجراءات التنظيف عند تدمير الكائن، وهو أمر حاسم لتحرير الموارد. تشكل هذه الثنائية أساس تقنيات إدارة الموارد مثل RAII.

  • تهيئة مضمونة
  • اكتساب الموارد (البناؤون)
  • تحرير الموارد (المدمرون)
  • ثوابت الفصل

4. إدارة الموارد: RAII والمؤشرات الذكية

تركيبة البناؤون/المدمر هي أساس العديد من التقنيات الأنيقة.

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

  • اكتساب الموارد في البناؤون
  • تحرير الموارد في المدمرون
  • تنظيف تلقائي عند خروج النطاق
  • أمان الاستثناءات

تجنب التسريبات. يساعد RAII في منع تسريبات الموارد (كالذاكرة) وأخطاء إدارة الموارد الأخرى (الحذف المبكر أو المزدوج). من خلال تغليف ملكية الموارد داخل الكائنات، يتولى المترجم التنظيف تلقائيًا.

  • القضاء على استخدام new و delete العاريين
  • منع تسريبات الذاكرة
  • إدارة الملفات، الأقفال، الخيوط، وغيرها

المؤشرات الذكية. unique_ptr و shared_ptr مؤشرات ذكية في المكتبة القياسية تستخدم RAII لإدارة الذاكرة المخصصة ديناميكيًا. يوفر unique_ptr ملكية حصرية، بينما يتيح shared_ptr ملكية مشتركة عبر عد المرجع. يُفضل استخدامها على المؤشرات الخام لإدارة الكائنات في الذاكرة.

  • unique_ptr (ملكية حصرية)
  • shared_ptr (ملكية مشتركة)
  • تحرير تلقائي للذاكرة
  • تجنب استدعاءات delete اليدوية

5. القوالب: تمكين البرمجة العامة

القالب هو فصل أو دالة نُعطيها مجموعة من الأنواع أو القيم كمعاملات.

المعاملات في وقت الترجمة. تتيح القوالب تعريف فصول، دوال، ومرادفات أنواع بمعاملات من أنواع أو قيم أو قوالب أخرى. هذا يمكّن كتابة شيفرة تعمل مع أنواع متعددة دون التضحية بالأداء.

  • المعاملات حسب النوع أو القيمة
  • تعدد الأشكال في وقت الترجمة
  • توليد الشيفرة

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

  • تصميم خوارزميات عامة
  • العمل مع أنواع متنوعة
  • المفاهيم (متطلبات المعاملات)

الكفاءة. القوالب آلية في وقت الترجمة، مما يعني أن استخدامها لا يضيف تكلفة تشغيلية مقارنة بالشيفرة المكتوبة يدويًا. يتحقق ذلك عبر تقنيات مثل التضمين والحساب في وقت الترجمة.

  • عدم وجود تكلفة تشغيلية
  • تمكين التضمين
  • الحساب في وقت الترجمة

6. المكتبة القياسية: أدواتك الأساسية

لا يُكتب برنامج مهم بلغة برمجة عارية فقط.

مكونات أساسية. توفر المكتبة القياسية مجموعة شاملة من المكونات الأساسية الضرورية لمعظم برامج C++. تشمل الحاويات، الخوارزميات، مرافق الإدخال/الإخراج، الأدوات، ودعم التزامن.

  • الحاويات (vector, list, map, set)
  • الخوارزميات (sort, find, copy, unique)
  • تدفقات الإدخال/الإخراج (cin, cout, cerr)
  • الأدوات (pair, tuple, المؤشرات الذكية، الوقت)
  • دعم التزامن

الأساس. المكتبة القياسية مكتوبة بلغة C++ نفسها، مما يبرهن على قوة اللغة ويشكل نموذجًا لتصميم جيد. تعمل كأساس مشترك للمكتبات والتطبيقات الأخرى، مما يعزز قابلية النقل والتشغيل البيني.

  • مكتوبة بـ C++
  • نموذج للتصميم الجيد
  • تعزز قابلية النقل
  • تمكّن التشغيل البيني

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

  • لا تعيد اختراع العجلة
  • مصممة جيدًا ومحسنة
  • متاحة ومعروفة على نطاق واسع

7. التزامن: دعم مدمج للتوازي

التزامن – تنفيذ عدة مهام في آن واحد – يُستخدم على نطاق واسع لتحسين الإنتاجية (باستخدام عدة معالجات لحساب واحد) أو لتحسين الاستجابة (بتمكين جزء من البرنامج من التقدم أثناء انتظار جزء آخر).

ميزة حديثة. تتضمن C++ دعمًا قويًا، محمولًا، وآمنًا من حيث النوع للبرمجة المتزامنة، لتلبية احتياجات الأجهزة متعددة النوى الحديثة. هذه إضافة مهمة في C++11.

  • دعم مدمج
  • محمول وآمن من حيث النوع
  • يلبي متطلبات المعالجات متعددة النوى

الخيوط والمهام. توفر المكتبة إدارة منخفضة المستوى للخيوط (std::thread) وتجريدات مهام عالية المستوى (std::future, std::async). تشترك الخيوط في مساحة عنوان واحدة، مما يتطلب تزامنًا دقيقًا لتجنب تعارض البيانات.

  • std::thread للخيوط النظامية
  • مساحة عنوان مشتركة
  • التزامن القائم على المهام (std::async)

التزامن. تُوفر آليات مثل الأقفال (std::mutex) ومتغيرات الشرط (std::condition_variable) لإدارة الوصول إلى البيانات المشتركة ومزامنة الخيوط. تقدم العمليات الذرية تزامنًا دقيقًا وخاليًا من الأقفال للأنواع البسيطة.

  • الأقفال والقفل
  • متغيرات الشرط
  • العمليات الذرية
  • تجنب تعارض البيانات

8. إتقان الأنواع والمرافق الأساسية

لكل اسم ولكل تعبير نوع مرتبط به.

الأساسيات. فهم الأنواع المدمجة في C++ (int, double, char, bool)، كيفية إعلان المتغيرات، قواعد النطاق، وعبارات التحكم الأساسية (if, switch, for, while) هو أساس لا غنى عنه. هذه العناصر، الموروثة والمحسنة من C، تشكل قاعدة كل برامج C++.

  • الأنواع المدمجة
  • الإعلانات والنطاق
  • عبارات التحكم
  • التعبيرات والعوامل

أمان النوع. C++ لغة ذات نوع ثابت، مما يعني فحص الأنواع في وقت الترجمة. يساعد هذا في اكتشاف الأخطاء مبكرًا. ميزات مثل auto لاستنتاج النوع و constexpr للثوابت في وقت الترجمة تعزز الأمان والتعبير.

  • فحص النوع الثابت
  • اكتشاف الأخطاء مبكرًا
  • auto لاستنتاج النوع
  • constexpr للثوابت

المؤشرات والمراجع. توفر C++ مؤشرات ومراجع للوصول غير المباشر إلى الذاكرة. رغم قوتها، تتطلب إدارة دقيقة، خاصة عند التعامل مع ملكية الموارد. تُفضل المؤشرات الذكية على المؤشرات الخام لإدارة الذاكرة.

  • المؤشرات والمراجع
  • الوصول غير المباشر للذاكرة
  • المؤشرات الذكية للملكية

9. دمج أنماط البرمجة لحلول فعّالة

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

التركيب لا الحصرية. صُممت C++ لدعم أنماط برمجة متعددة: الإجرائية، تجريد البيانات، البرمجة الكائنية، والبرمجة العامة. تتيح ميزات اللغة استخدام هذه الأنماط معًا، وغالبًا ما تجمع الحلول الفعالة تقنيات من عدة أنماط.

  • البرمجة الإجرائية
  • تجريد البيانات
  • البرمجة الكائنية
  • البرمجة العامة

تجنب العقائدية. التركيز الحصري على نمط واحد أو اعتبار C++ لغة "هجينة" فقط يغفل قوة تركيبها. توفر اللغة أدوات يمكن استخدامها بأناقة معًا لدعم مجموعة واسعة من التقنيات.

  • اللغة تدعم التوليف
  • تجنب التفكير الأحادي النمط

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

  • اختيار الأدوات المناسبة
  • دمج الميزات بفعالية
  • التركيز على التصميم والتقنيات

10. معالجة الأخطاء: الاستثناءات والضمانات

توفر فكرة الاستثناءات وسيلة لنقل المعلومات من نقطة اكتشاف الخطأ إلى نقطة معالجته.

فصل الاهتمامات. توفر الاستثناءات (throw, catch) آلية لفصل الشيفرة التي تكشف الخطأ عن تلك التي تعالجه. هذا مفيد خصوصًا في البرامج والمكتبات الكبيرة حيث لا يعرف الكاشف كيفية التعافي، ولا يستطيع المعالج اكتشاف الخطأ بسهولة.

  • throw للإبلاغ عن الأخطاء
  • catch لمعالجة الأخطاء
  • فصل الكشف والمعالجة

أمان الاستثناءات. توفر المكتبة القياسية ضمانات حول حالة الكائنات عند رمي الاستثناءات. الضمان الأساسي يضمن الحفاظ على الثوابت وعدم تسرب الموارد. الضمان القوي يضمن نجاح العملية بالكامل أو عدم تأثيرها.

  • الضمان الأساسي (لا تسرب، حالة صالحة)
  • الضمان القوي (الكل أو لا شيء)
  • محدد noexcept

التكامل مع RAII. ترتبط معالجة الاستثناءات ارتباطًا وثيقًا مع RAII. يضمن هذا تحرير الموارد التي اكتسبتها الكائنات أثناء تفكيك المكدس عند انتشار الاستثناء، مما يمنع التسريبات ويبسط شيفرة التنظيف.

  • RAII للتنظيف
  • استدعاء المدمرات أثناء تفكيك المكدس

آخر تحديث:

Report Issue

ملخص المراجعات

4.10 من 5
متوسط ٤٬٠٠٠+ تقييمات من Goodreads وAmazon.

يُعتبر كتاب "لغة البرمجة C++" المرجع الأهم والأشمل في مجال لغة C++، وهو من تأليف مبتكر اللغة نفسها. يحظى الكتاب بإشادة واسعة لما يحتويه من تغطية شاملة ورؤى قيمة، إلا أن العديد من المراجعين يشيرون إلى أنه غير مناسب للمبتدئين. يوصف الكتاب بأنه كثيف المحتوى، وأحيانًا مطول، ويُفضل استخدامه كمرجع أكثر من كونه أداة تعليمية. يقدّر المبرمجون ذوو الخبرة عمقه وتفاصيله التقنية الدقيقة. بينما ينتقد البعض أسلوب الكتابة وتنظيم المحتوى، يرى آخرون أنه ضروري لإتقان لغة C++. بشكل عام، يُعتبر هذا الكتاب مورداً حيوياً للمحترفين، لكنه يمثل تحديًا لمن يشرعون في تعلم اللغة.

Your rating:
4.49
126 تقييم
Want to read the full book?

عن المؤلف

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

كتب أخرى لـ بيارنه ستروستروب

Follow
استمع
Now playing
لغة البرمجة C++
0:00
-0:00
Now playing
لغة البرمجة C++
0:00
-0:00
1x
Queue
Home
Swipe
Library
Get App
Try Full Access for 3 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
Read unlimited summaries. Free users get 3 per month
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
اليوم: احصل على وصول فوري
استمع إلى ملخصات كاملة لأكثر من 26,000 كتاب. أي أكثر من 12,000 ساعة صوتية!
اليوم الثاني: تذكير بالتجربة
سنرسل لك إشعارًا بأن فترة التجربة على وشك الانتهاء.
اليوم الثالث: يبدأ اشتراكك
سيتم الخصم في Jun 14,
يمكنك الإلغاء في أي وقت قبل ذلك.
Consume 2.8× More Books
2.8× more books Listening Reading
Our users love us
600,000+ readers
Trustpilot Rating
TrustPilot
4.6 Excellent
This site is a total game-changer. I've been flying through book summaries like never before. Highly, highly recommend.
— Dave G
Worth my money and time, and really well made. I've never seen this quality of summaries on other websites. Very helpful!
— Em
Highly recommended!! Fantastic service. Perfect for those that want a little more than a teaser but not all the intricate details of a full audio book.
— Greg M
Save 62%
Yearly
$119.88 $44.99/year/yr
$3.75/mo
Monthly
$9.99/mo
Start a 3-Day Free Trial
3 days free, then $44.99/year. Cancel anytime.
Unlock a world of fiction & nonfiction books
26,000+ books for the price of 2 books
Read any book in 10 minutes
Discover new books like Tinder
Request any book if it's not summarized
Read more books than anyone you know
#1 app for book lovers
Lifelike & immersive summaries
30-day money-back guarantee
Download summaries in EPUBs or PDFs
Cancel anytime in a few clicks
Scanner
Find a barcode to scan

We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel
Settings
General
Widget
Loading...
We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel