شائعرحلة
تعلّم C++
دورة C++ مجانية وتفاعلية أونلاين. ستكتب C++ في كل درس — من الأساسيات إلى pointers والـ classes والـ templates — مع تلميحات بالذكاء الاصطناعي حين يصرخ في وجهك compiler، وشهادة مجانية عند الانتهاء.
211,803+ من الـ codders مسجلون
- مناسب للمبتدئين
مساعدة برمجية بالذكاء الاصطناعي
دروس تفاعلية عملية
تعليق صوتي في كل درس
اختبارات لقياس معرفتك
شهادة إتمام مجانية
المنهج
قسم 1
Fundamentals
ابدأ القسمابدأتوسيعطيBuild a strong foundation with essential concepts and basic skillsمقدمة
4 درسًا325- 01C++تحدي
- 02أهلاً بالعالم!تحدياختبار
- 03التعليقاتاختبار
- 04هيكل البرنامج الأساسيتحدياختبار
المتغيرات - الجزء الأول
6 درسًا846- 01الأعداد الصحيحةتحديإتقاناختبار
- 02الأعداد الحقيقيةتحديإتقاناختبار
- 03Stringتحدياختبار
- 04Booleanتحدياختبار
- 05Charتحدياختبار
- 06الثوابتتحدياختبار
المتغيرات - الجزء الثاني
5 درسًا334- 01التصريح عن النوعتحدياختبار
- 02قواعد التسميةاختبار
- 03مراجعة - تهيئة المتغيراتتحدي
- 04تحويل الأنواع - الجزء الأولتحدياختبار
- 05تحويل الأنواع - الجزء الثانياختبار
المعاملات - الجزء الأول
7 درسًا654- 01المعاملات الحسابيةتحدياختبار
- 02معامل باقي القسمة (Modulo)تحدياختبار
- 03الزيادة والنقصانتحدياختبار
- 04الزيادة والنقصان اللاحقةتحدياختبار
- 05اختصارات العمليات الحسابيةتحدياختبار
- 06معاملات المقارنةتحدياختبار
- 07مقارنة النصوصاختبار
المعاملات - الجزء الثاني
4 درسًا423- 01المعاملات المنطقية - الجزء الأولتحدياختبار
- 02المعاملات المنطقية - الجزء الثانيتحدياختبار
- 03مراجعة - المنطق البسيطتحدي
- 04المعاملات المنطقية - الجزء الثالثتحدياختبار
اتخاذ القرار
6 درسًا637- 01جملة Ifتحدياختبار
- 02If - Elseتحدياختبار
- 03جملة Switchتحدياختبار
- 04المعامل الشرطيتحدياختبار
- 05مراجعة - If Elseتحدي
- 06جمل If - Else المتداخلةتحدياختبار
أساسيات الإدخال والإخراج
5 درسًا524- 01جملة coutتحديإتقاناختبار
- 02جملة cinتحدياختبار
- 03إدخال Stringاختبار
- 04مراجعة - حتى 120تحدي
- 05مراجعة - صح أم خطأتحدي
حاسبة الأرقام
مشروع4 درسًا16- 01رسالة الترحيبتحدياختبار
- 02استقبال الأرقاممشروع
- 03العمليات الأساسيةمشروع
- 04المخرجات المنسقةمشروع
حلقات التكرار
9 درسًا760- 01حلقة For - الجزء الأولتحدياختبار
- 02حلقة Whileتحدياختبار
- 03حلقة Do Whileتحدياختبار
- 04Breakتحدياختبار
- 05Continueتحدياختبار
- 06حلقة For - الجزء الثانياختبار
- 07الحلقات المتداخلةتحدياختبار
- 08الحلقات اللانهائيةاختبار
- 09مراجعة - Dynamic Inputتحدي
الدوال
7 درسًا739- 01تعريف دالةتحدياختبار
- 02المعاملاتتحديإتقاناختبار
- 03أنواع الإرجاعتحدياختبار
- 04التحميل الزائد للدوالاختبار
- 05مراجعة - دالة Sigmaتحدي
- 06مراجعة - دالة التحققتحدي
- 07دوال Voidتحدياختبار
أساسيات المصفوفات
9 درسًا848- 01التصريح عن المصفوفاتتحدياختبار
- 02الوصول إلى العناصرتحدياختبار
- 03تعديل العناصرتحدياختبار
- 04مراجعة - طباعة المصفوفة بشكل منسقتحدي
- 05المصفوفات والدوالاختبار
- 06مراجعة - حاصل ضرب عناصر المصفوفةتحدي
- 07مراجعة - المصفوفة المعكوسةتحدي
- 08حلقة For المطورةتحدياختبار
- 09عمليات المصفوفات الشائعةتحدياختبار
السلاسل النصية
5 درسًا441- 01سلاسل C النصية - الجزء الأولتحدياختبار
- 02سلاسل C النصية - الجزء الثانياختبار
- 03عمليات السلاسل النصيةتحدياختبار
- 04دوال السلاسل النصية - الجزء الأولتحدياختبار
- 05دوال السلاسل النصية - الجزء الثانيتحدياختبار
التحديات النهائية
3 درسًا37- 01نمط الأرقامتحدياختبار
- 02مكتشف الأنماطتحدي
- 03حاسبة درجات الطلابتحدي
قسم 2
Logic & Flow
ابدأ القسمابدأتوسيعطيDevelop problem-solving skills and create dynamic, interactive programsالمؤشرات والذاكرة
8 درسًا757- 01ما هو المؤشر؟اختبار
- 02معامل العنوان (Address-Of)تحدياختبار
- 03معامل الوصول للقيمة (Dereference)تحدياختبار
- 04المؤشرات الفارغة (Null Pointers)تحدياختبار
- 05المؤشرات والمصفوفاتتحدياختبار
- 06الذاكرة الديناميكية باستخدام 'new'تحدياختبار
- 07تحرير الذاكرة باستخدام 'delete'تحدياختبار
- 08مراجعة - تمارين على المؤشراتتحدي
المتجهات (المصفوفات الديناميكية)
9 درسًا861- 01مقدمة إلى std::vectorاختبار
- 02إنشاء Vectorتحدياختبار
- 03إضافة العناصرتحدياختبار
- 04الوصول إلى العناصرتحدياختبار
- 05حجم الـ Vectorتحدياختبار
- 06التكرار باستخدام For Loopتحدياختبار
- 07الـ Range-Based For Loopتحدياختبار
- 08إزالة العناصرتحدياختبار
- 09ملخص - عمليات الـ Vectorتحدي
مشروع: أداة قائمة المهام
مشروع5 درسًا1- 01نظرة عامة على المشروعتحدي
- 02إضافة مهمةمشروع
- 03عرض المهاممشروع
- 04إزالة مهمةمشروع
- 05إنهاء الأداةمشروع
الخرائط (أزواج مفتاح-قيمة)
7 درسًا644- 01مقدمة إلى std::mapاختبار
- 02إنشاء خريطةتحدياختبار
- 03الوصول إلى القيم وتعديلهاتحدياختبار
- 04التحقق من وجود المفاتيحتحدياختبار
- 05حذف الأزواجتحدياختبار
- 06التكرار عبر الخريطةتحدياختبار
- 07مراجعة - تكرار الكلماتتحدي
مشروع: أداة المخزون
مشروع5 درسًا1- 01إعداد المشروعتحدي
- 02إضافة وتحديث العناصرمشروع
- 03التحقق من المخزونمشروع
- 04إزالة المخزونمشروع
- 05طباعة تقرير المخزونمشروع
المجموعات (عناصر فريدة)
6 درسًا538- 01مقدمة إلى std::setاختبار
- 02إنشاء مجموعة وإضافة عناصرتحدياختبار
- 03التحقق من وجود العناصرتحدياختبار
- 04إزالة العناصرتحدياختبار
- 05التكرار عبر المجموعةتحدياختبار
- 06ملخص - أرقام فريدةتحدي
الدوال المتقدمة
7 درسًا653- 01التمرير بالمرجعتحدياختبار
- 02مقدمة في تعبيرات Lambdaتحدياختبار
- 03تعبيرات Lambda مع المعاملاتتحدياختبار
- 04تعبيرات Lambda مع قيم الإرجاعتحدياختبار
- 05مقدمة في الاستدعاء الذاتياختبار
- 06المضروب بالاستدعاء الذاتيتحدياختبار
- 07الفرز باستخدام Lambdaتحدياختبار
أساسيات معالجة الأخطاء
6 درسًا540- 01مقدمة في الاستثناءاتاختبار
- 02كتل 'try' و 'catch'تحدياختبار
- 03الكلمة المفتاحية 'throw'تحدياختبار
- 04أنواع الاستثناءات المختلفةتحدياختبار
- 05معالج كافة الاستثناءاتتحدياختبار
- 06مراجعة - القسمة الآمنةتحدي
التحديات النهائية
3 درسًا3- 01تصفية بيانات الـ Vectorتحدي
- 02البحث عن القيم في الـ Mapتحدي
- 03المؤشر والمصفوفة الديناميكيةتحدي
قسم 3
Object Oriented Programming
ابدأ القسمابدأتوسيعطيDiscover how to organize code with classes, objects, and reusable structuresأساسيات الـ OOP
11 درسًا1187- 01الملفات الخارجيةتحدياختبار
- 02بناء وتجميع (Compilation) لغة C++تحدياختبار
- 03ملفات الـ Header وملفات الـ Sourceتحدياختبار
- 04الـ Namespaces والـ Scopeتحدياختبار
- 05مقدمة في الـ OOP في C++تحدياختبار
- 06الـ Classes مقابل الـ Objectsتحدياختبار
- 07المؤشر 'this'تحدياختبار
- 08الـ Methods (الدوال الأعضاء)تحدياختبار
- 09الـ Attributes (بيانات الأعضاء)تحدياختبار
- 10أساسيات الـ Ctors والـ Dtorsتحدياختبار
- 11مراجعة - آلة حاسبة بسيطةتحدي
إدارة الذاكرة
6 درسًا644- 01ذاكرة Stack مقابل Heapتحدياختبار
- 02المؤشرات والمراجعتحدياختبار
- 03الذاكرة الديناميكية (new/delete)تحدياختبار
- 04المؤشرات الذكية في C++تحدياختبار
- 05RAII في C++تحدياختبار
- 06مراجعة - مدير المصفوفات الديناميكيةتحدي
المنشئات والموادم
9 درسًا972- 01المنشئ الافتراضيتحدياختبار
- 02المنشئ ذو المعاملاتتحدياختبار
- 03منشئ النسختحدياختبار
- 04منشئ النقلتحدياختبار
- 05قوائم تهيئة المنشئتحدياختبار
- 06المنشئات المفوضةتحدياختبار
- 07تعمق في الموادمتحدياختبار
- 08قاعدة الثلاثة / الخمسة / الصفرتحدياختبار
- 09مراجعة - فئة Stringتحدي
خصائص الـ Class
7 درسًا753- 01أعضاء الـ Instance مقابل الـ Staticتحدياختبار
- 02دوال الـ Getters والـ Settersتحدياختبار
- 03دوال الأعضاء الثابتة (Const)تحدياختبار
- 04الكلمة المفتاحية Mutableتحدياختبار
- 05الدوال والمتغيرات الساكنة (Static)تحدياختبار
- 06الدوال والفئات الصديقة (Friend)تحدياختبار
- 07مراجعة - مدير الحساب البنكيتحدي
التغليف (Encapsulation)
6 درسًا651- 01محددات الوصول في C++تحدياختبار
- 02محددات الوصول بشكل متعمقتحدياختبار
- 03إخفاء المعلوماتتحدياختبار
- 04Struct مقابل Classتحدياختبار
- 05الأصناف المتداخلة والداخليةتحدياختبار
- 06مراجعة - نظام سجلات الطلابتحدياختبار
تحميل العوامل (Operator Overloading)
8 درسًا863- 01مقدمة في تحميل العواملتحدياختبار
- 02تحميل العوامل الحسابيةتحدياختبار
- 03تحميل عوامل المقارنةتحدياختبار
- 04عوامل Streamتحدياختبار
- 05تحميل عامل التعيينتحدياختبار
- 06تحميل العوامل [] و ()تحدياختبار
- 07عوامل تحويل النوعتحدياختبار
- 08مراجعة - Matrix Classتحدي
الوراثة
8 درسًا862- 01الوراثة الأساسيةتحدياختبار
- 02مستويات الوصول في الوراثةتحدياختبار
- 03ترتيب استدعاء الـ Ctor والـ Dtorتحدياختبار
- 04إعادة تعريف الدوال (Method Overriding)تحدياختبار
- 05الدوال الافتراضية والـ VTableتحدياختبار
- 06الوراثة المتعددةتحدياختبار
- 07الوراثة الافتراضيةتحدياختبار
- 08مراجعة - هيكلية الموظفينتحدي
تعدد الأشكال (Polymorphism)
8 درسًا860- 01تعدد الأشكال: وقت التجميع مقابل وقت التشغيلتحدياختبار
- 02التحميل الزائد للدوال (Function Overloading)تحدياختبار
- 03مراجعة الدوال الافتراضية (Virtual Functions)تحدياختبار
- 04الدوال الافتراضية البحتة (Pure Virtual Functions)تحدياختبار
- 05الأصناف المجردة (Abstract Classes)تحدياختبار
- 06تصميم الواجهات (Interface) في C++تحدياختبار
- 07التحويل الديناميكي (Dynamic Casting) و RTTIتحدياختبار
- 08ملخص - حاسبة الأشكالتحدي
القوالب
6 درسًا546- 01قوالب الدوالتحدياختبار
- 02قوالب الأصنافتحدياختبار
- 03تخصيص القوالبتحدياختبار
- 04القوالب المتغيرةتحدياختبار
- 05أساسيات SFINAE و Type Traitsاختبار
- 06مراجعة - الحاويات العامةتحدي
نظرة عامة على STL
6 درسًا646- 01نظرة عامة وفلسفة STLتحدياختبار
- 02حاويات STLتحدياختبار
- 03الـ Iteratorsتحدياختبار
- 04خوارزميات STLتحدياختبار
- 05الـ Functors وتعبيرات Lambdaتحدياختبار
- 06مراجعة - تكرار الكلماتتحدي
مفاهيم OOP المتقدمة
7 درسًا763- 01التركيب مقابل الوراثةتحدياختبار
- 02الـ Mixins عبر CRTPتحدياختبار
- 03نمط Pimplتحدياختبار
- 04محو النوع (Type Erasure)تحدياختبار
- 05أصناف Enum والأنواع القويةتحدياختبار
- 06معالجة الاستثناءات في OOPتحدياختبار
- 07تسلسلات الاستثناءات المخصصةتحدياختبار
ميزات C++ الحديثة
7 درسًا764- 01دلالات النقل و Rvaluesتحدياختبار
- 02التمرير المثاليتحدياختبار
- 03تعبيرات Lambda بعمقتحدياختبار
- 04std::function و std::bindتحدياختبار
- 05constexpr و constevalتحدياختبار
- 06الارتباطات المهيكلةتحدياختبار
- 07optional و variant و anyتحدياختبار
أنماط التصميم - الجزء الأول
6 درسًا655- 01مقدمة في أنماط التصميمتحدياختبار
- 02نمط Singletonتحدياختبار
- 03نمط Factory و Abstract Factoryتحدياختبار
- 04نمط Builderتحدياختبار
- 05نمط Observerتحدياختبار
- 06نمط Strategyتحدياختبار
أنماط التصميم - الجزء الثاني
7 درسًا764- 01نمط الأمرتحدياختبار
- 02نمط المحولتحدياختبار
- 03نمط المزينتحدياختبار
- 04نمط قالب الطريقةتحدياختبار
- 05نمط الحالةتحدياختبار
- 06نمط التركيبتحدياختبار
- 07RAII كنمطتحدياختبار
التحديات النهائية
2 درسًا2- 01منصة التعلم الإلكترونيتحدي
- 02نظام مصرفيتحدي
لماذا تتعلم C++ مع Coddy
- اكتب كود C++ حقيقي وشغّله من المتصفح. لا تثبيت لأي compiler ولا إعداد toolchain. كل درس يُترجم كودك على الخادم ويعرض لك المخرجات فورًا.
- C++ الحديثة: الكلاسات والكائنات، الوراثة، virtual functions، المراجع والمؤشرات، templates، وSTL. أنماط C++ التي تُستخدم فعلًا اليوم.
- تساعدك تلميحات الذكاء الاصطناعي على قراءة أخطاء مُصرِّف C++ وإصلاحها — خصوصًا تلك المعروفة بغموضها — فتشعر أن اللغة في متناولك بدلًا من أن تُرهقك.
- شهادة C++ مجانية عند الإنهاء. مفيدة لوظائف الأنظمة وتطوير الألعاب والأنظمة المضمّنة (embedded)، حيث يُعدّ إتقان C++ شرطًا أساسيًا.
أسئلة شائعة حول تعلّم C++
هل C++ سهل التعلم؟
تشتهر C++ بأنها من أصعب اللغات في التعلّم — المؤشرات، وإدارة الذاكرة يدويًا، وكمّ هائل من الميزات، كلها تتراكم. الخبر الجيد أنك لست بحاجة إلى كل ميزة من اليوم الأول. تبدأ الدورة بالأساسيات العملية (المتغيرات، التحكم في التدفق، الدوال، الكلاسات)، ثم تُقدّم المؤشرات والقوالب لاحقًا بعد أن تترسّخ الأساسيات.
هل أتعلم C أم C++ أولاً؟
كلتاهما تعلّمك التفكير على المستوى المنخفض، لكن كلًّا منهما يأخذك في اتجاه مختلف. لغة C أصغر وتجبرك على مواجهة الذاكرة والـ pointers منذ البداية. أما C++ فأكبر، لكنها تتيح تدرّجًا أهدأ عبر الـ classes والـ STL قبل أن تضطر لإدارة الذاكرة يدويًا. إن كان هدفك تطوير التطبيقات أو الألعاب، ابدأ بـ C++؛ أما لأعمال الأنظمة المدمجة أو أنظمة التشغيل، فإن C أقرب إلى العتاد.
كم من الوقت يستغرق تعلّم C++؟
أساسيات C++ — الصياغة، التحكم في التدفق، الدوال، الفئات البسيطة — تحتاج من ثلاثة إلى ستة أسابيع من الممارسة اليومية. أما الاستخدام المريح للـ pointers والـ templates والـ STL فيستغرق عادةً من ثلاثة إلى ستة أشهر. الإتقان (أساليب C++ الحديثة، العمل على الأداء، قواعد الشيفرات المعقدة) رحلة تمتد لسنوات.
هل يمكنني تعلم C++ مجاناً عبر الإنترنت؟
نعم. الدورة التفاعلية لـ C++ مجانية — دروس وتمارين برمجية واختبارات قصيرة وشهادة. المحرر يعمل داخل المتصفح، فلا حاجة لتثبيت GCC أو Clang أو Visual Studio على جهازك لتبدأ كتابة C++.
هل أحتاج إلى تثبيت compiler لأتابع هذه الدورة في C++؟
لا. كل تمرين C++ يُجمَّع على الخادم في بيئة معزولة ويعرض المخرجات بجانب الكود مباشرة. لا toolchain، ولا makefile، ولا IDE.
هل أحصل على شهادة C++ بعد إنهاء الدورة؟
نعم. بإكمالك دورة C++ تحصل على شهادة إتمام مجانية. دليل قابل للتحقق يمكنك إضافته إلى سيرتك الذاتية أو حساب LinkedIn إلى جانب مشاريع البرمجة في معرض أعمالك.