لغة السي بلاس بلاس
ان كنت تريد تاسيس نفسك و تبحث عن أفضل كورس لتعلم لغة السي بلاس بلاس ف انت في المكان المناسب .
ما هي لغة C++ ؟ C++ تكتب سي بلاس بلاس باللغة العربية و هي لغة برمجة تجميعية ( Compiled ) و كائنية ( Object Oriented ) تضم العديد من مميزات لغات البرمجة عالية المستوى ( High Level ) و منخفضة المستوى ( Low Level ) و هذا يعني أنك قادر على فعل ما تشاء بها. هذه اللغة الرائعة مصممة لتعمل على جميع أنظمة التشغيل المعروفة مثل ويندوز, ماك, لينكس, إندرويد إلخ.. و هي تعتبر من أقوى و أشهر لغات البرمجة على الإطلاق و يطلق عليها "أم اللغات" نظراً لأنها لغة قوية و موجودة منذ زمن طويل. تم بناء هذه اللغة بالأساس كتطوير للغة C من قبل Bjarne Stroustrup أثناء عمله في مختبرات Bell لتكون أطروحته في رسالة الدكتورا عام 1979. من ذلك الحين و حتى وقتنا الحالي تم تطوير هذه اللغة بشكل مستمر و اخر إصدار رسمي لها هو C++ 17.
تجهيز بيئه في السي بلاس بلاس ++C
تحميل و تنصيب و تجهيز أدوات C++ ›طريقة عمل برنامج مكتوب بلغة C++ ›تجهيز بيئة العمل لتطوير تطبيقات بلغة C++ ›الشكل العام لأي برنامج مكتوب بلغة C++ ›فائدة السطر using namespace std; طريقة عمل برنامج مكتوب بلغة C++ الكود الذي تكتبه على الكمبيوتر لا يعمل بشكل مباشر بل يمر بعدة مراحل تباعاً حتى يعمل تماماً كما في الصورة التالية.
المتغيرات في السي بلاس بلاس ++C
المتغيرات ( variable ) عبارة عن أماكن يتم حجزها في الذاكرة بهدف تخزين بيانات فيها أثناء تشغيل البرنامج. النوع الذي نعطيه للمتغير يجعل نظام التشغيل يحدد نوع البيانات الذي يمكن تخزينه في المساحة المحجوزة لهذا المتغير في الذاكرة.
العوامل في السي بلاس بلاس ++C
العوامل ( operators ) عبارة عن رموز لها معنى محدد, و يمكننا تقسيم العوامل إلى 5 مجموعات أساسية كالتالي: Arithmetic Operators Comparison Operators Logical Operators Bitwise Operators Assignment Operators
العوامل في السي بلاس بلاسالعوامل التي تستخدم لاعطا المتغيرات في السي بلاس بلاس ++C
العامل = (Basic Assign) ›العامل += (Add and Assign) ›العامل -= (Susbtract and Assign) ›العامل *= (Multiply and Assign) ›العامل /= (Divide and Assign) ›العامل %= (Modulo and Assign) ›العامل <<= (Left shift and Assign) ›العامل >>= (Right shift and Assign) ›العامل &= (Bitwise and Assign) ›العامل |= (Bitwise exclusive OR and Assign)
العوامل التي تستخدم لإعطاء قيم للمتغيرات (Assignment Operators) في C++عوامل Bits في السي بلاس بلاس ++C
العوامل التي تستخدم للتعامل مع الـ Bits ›العامل & (Bitwize AND) ›العامل | (Bitwize OR) ›العامل ^ (Bitwize XOR) ›العامل ~ (Bitwize Compliment OR) ›العامل << (Left Shift) ›العامل >> (Right Shift)
العوامل المنطقية في السي بلاس بلاس ++C
العوامل التي تستخدم لوضع شروط منطقية ›العامل && (AND Operator) ›العامل || (OR Operator) ›العامل ! (NOT Operator)
عوامل المقارنة في السي بلاس بلاس ++C
العوامل التي تستخدم للمقارنة ›العامل == (Equal To Operator) ›العامل != (Not Equal To Operator) ›العامل > (Greater Than Operator) ›العامل < (Less Than Operator) ›العامل >= (Greater Than or Equal To Operator) ›العامل <= (Less Than or Equal To Operator)
الشروط في السي بلاس بلاس ++C
مفهوم الشروط في C++ الشروط ( conditions ) تستخدم لتحديد طريقة عمل البرنامج نسبةً للمتغيرات التي تطرأ على الكود. كمثال بسيط, يمكنك بناء برنامج لمشاهدة الأفلام, عند الدخول إليه يطلب من المستخدم في البداية أن يدخل عمره لكي يقوم بعرض أقلام تناسب عمره. يمكنك وضع العدد الذي تريده من الشروط في البرنامج الواحد, و تستطيع وضع الشروط بداخل بعضها البعض أيضاً.
الحلقات في السي بلاس بلاس ++C
مفهوم الحلقات في C++ نستخدم الحلقات ( Loops ) بهدف تكرار نفس الكود عدة مرات. إذاً أي كود نريده أن يتنفذ عدة مرات, نقوم بكتابته داخل حلقة فتقوم هي بإعادة تنفيذ الكود قدر ما شئنا ضمن شروط معينة نقوم نحن بتحديدها.
التعامل مع الاعداد في السي بلاس بلاس ++C
مفهوم التعامل مع الأعداد في C++ هناك الكثير من الدوال الجاهزة في C++ و التي يمكنك استخدامها لإجراء عمليات حسابية. بعض هذه الدوال يمكن استخدامها بشكل مباشر لأنها تعتبر معروفة بالنسبة لمترجم اللغة بشكل إفتراضي و بعض الدوال بحاجة لأن تضّمنها بنفسك أولاً حتى تتمكن من استخدامها.
التعامل مع النصوص في السي بلاس بلاس ++C
مفهوم النصوص في C++ في عالم البرمجة, نقول للنص "String" سواء كان يتألف من حرف واحد, كلمة, جملة أو نص كبير جداً. و من هذا المنطلق نستنتج أن النص عبارة عن سلسلة من الأحرف ليس لها حجم محدد.
المصفوفات في السي بلاس بلاس ++C
مفهوم المصفوفات في C++ المصفوفة ( Array ) عبارة عن متغير واحد يتألف من عدة عناصر ( Elements ) من نفس النوع. و كل عنصر في المصفوفة يمكن تخزين قيمة واحدة فيه. عناصر المصفوفة تتميز عن بعضها من خلال رقم محدد يعطى لكل عنصر يسمى index. أول عنصر في المصفوفة دائماً يكون رقمه 0. الآن, عليك معرفة أن عدد عناصر المصفوفة ثابت, أي بمجرد أن قمت بتحديده لا يمكنك تغييره من جديد, مع الإشارة إلى أنك تستطيع تغيير قيم هذه العناصر متى شئت.
الدوال في السي بلاس بلاس ++C
مفهوم الدوال في C++ الدالة ( Function ) عبارة عن مجموعة أوامر مجمعة في مكان واحد و تتنفذ عندما نقوم باستدعائها. في الدروس السابقة تعرفنا على الكثير من العديد من الدوال الجاهزة في C++ و التي تستخدم للتعامل مع النصوص و الأرقام. في هذا الدرس سنتعلم كيفية إنشاء دوال جديدة و كيفية استخدامها.
ادخال البيانات في السي بلاس بلاس ++C
في هذا الدرس ستتعلم كيف تنشئ برنامح يتفاعل مع المستخدم, حيث أنك عندما تقوم بتشغيله سيطلب من المستخدم إدخال بيانات, و بعد إدخالها سيقوم البرنامج بمعالجتها و فعل شيء معين بها.
المراجع في السي بلاس بلاس ++C
مفهوم المراجع C++ المراجع ( References ) هي العناوين التي يتم إعطائها لأي شيء (مثل المتغيرات, المصفوفات و الكائنات) يتم تعريفه في الذاكرة عند تشغيل البرنامج. عناوين الأشياء التي يتم تخصيص مساحة لها في الذاكرة, يتم وضعها بأسلوب Hexadecimal حيث تجد أغلب العنواين تحتوي على أرقام و أحرف كالتالي 0xd5ef87c. الوصول للأشياء الموجودة في الذاكرة أمر مهم جداً حيث يجعلك قادر على تقليل المساحة التي يحتاجها برنامجك من الذاكرة. كما أنه قد يجعل حجم الكود أصغر حيث أنك تستطيع الوصول للأشياء الموجودة فيها بشكل مباشر و هذا الأمر ستلاحظه إن كنت تعمل في مشاريع ضخمة. إمكانية الوصول للأشياء الموجودة في الذاكرة هو أهم ما يميز لغة C++ عن باقي اللغات التي لا يمكن فيها ذلك كلغة جافا و لغة بايثون. الآن, للوصول إلى عناوين الأشياء الموجودة في الذاكرة نستخدم العامل & الذي يقال له Address Operator.
المؤشرات في السي بلاس بلاس ++C
مفهوم المؤشرات C++ في الدرس السابق تعرفنا على المراجع ( References ) و تعلمنا كيف أنها تستخدم بهدف جعلنا قادرين على الوصول إلى الأشياء المعرفة في الذاكرة بشكل مباشر. المؤشرات ( Pointers ) تستخدم أيضاً للوصول لأي شيء يتم تعريفه في الذاكرة و هي تعطينا المزيد من المزايا في التحكم. الفرق بين المرجع و المؤشر الفرق الأساسي بينهما هو أن المؤشر يقوم بحجز مساحة في الذاكرة لتخزين عنوان الشيء الذي يؤشر إليه. بالإضافة إلى ذلك, فإن المؤشر يمكنه الإشارة لأي شيء موجود في الذاكرة في أي وقت و لست مجبراً على تحديد الشيء الذي يشير إليه لحظة إنشاءه. في هذا الدرس ستفهم الفرق بين المراجع و المؤشرات بالنسبة للذاكرة و ستتعرف على المزايا الإضافية التي توفرها المؤشرات.
2- تعلم برمجة الكائنات في لغة السي بلاس بلاس
البرمجة الكائنية في السي بلاس بلاس ++C
مفهوم البرمجة الكائنية (OOP) البرمجة الكائنية ( Object Oriented Programming ) و التي تختصر بكلمة OOP عبارة عن أسلوب نتبعه في كتابة الكود لجعل كتابة الكود أكثر سهولة. إذاً البرمجة الكائنية هي مجرد أسلوب في العمل لا أكثر و هي ليست خاصة بلغة C++ حيث أنها تطبق في باقي لغات البرمجة. فكرة البرمجة الكائنية بشكل عام هي تجهيز الشكل الذي سيتم فيه حفظ المعلومات مما يجعل الوصول إليها و التعديل عليها سهل للغاية. كمثال بسيط, إذا كنت تنوي بناء برنامج لحفظ معلومات المستخدمين, ستقوم بتجهيز الشكل العام للمعلومات التي تنوي حفظها لكل مستخدم.
الكلاس في السي بلاس بلاس ++C
مفهوم الكلاس في C++ الكلاس عبارة عن نوع جديد يتم تعريفه بواسطة الكلمة class و هذا النوع يمكنه أن يحتوي على دوال, متغيرات, مصفوفات إلخ.. النوع الذي تقوم بتعريفه بوسطة الكلمة class يشبه بشكل كبير النوع الذي تقوم بتعريفه بواسطة الكلمة struct التي تعرفنا عليها في الدرس السابق. لهذا السبب سنبدأ بذكر الفرق بينهما حتى لا ترتبك من شدة التشابه الذي ستلاحظه بينهما. الفرق الأساسي بين النوع الذي يتم تعريفه بواسطة الكلمة class و النوع الذي يتم تعريفه بواسطة الكلمة struct هو أن هذا الأخير يمكن الوصول لأي شيء موجود فيه بشكل مباشر, بينما في النوع class أنت تحدد ما إن كان يمكن الوصول للأشياء التي تضعها فيه بشكل مباشر أم لا. إمكانية تحديد الطريقة التي يمكن فيها الوصول للأشياء الموجودة في الكلاس تمكننا من تطبيق كل مبادئ البرمجة الكائنية ( OOP ) المتعارف عليها. لهذا سنركز بشكل كبير في الدروس القادمة على التعامل مع الكلاس بشكل خاص.
الثوابت في السي بلاس بلاس ++C
مفهوم الثوابت في C++ الثابت ( Constant ) عبارة عن أي شيء يتم تعريفه بشكل لا يمكن إعادة تغيير قيمته. لتعريف المتغير أو الكائن كثابت نستخدم الكلمة const و عندها نصبح غير قادرين على تغيير قيمته. الكلمة const يمكن استخدامها مع الأشياء التالية: المتغيرات (Variables). المؤشرات (Pointers). باراميترات لدوال (Functions Parameters). خصائص الكلاس (Class Member Variables). دوال الكلاس (Class Member Functions). الكائنات (Object
enum في السي بلاس بلاس ++C
مفهوم النوع enum في C++ النوع enum يستخدم لتعريف قائمة من القيم أو عدة مجموعة قيم ثابتة بشكل منطقي. في نهاية الأمر تعتبر هذه المجموعة كنوع جديد من البيانات و فيه عدة قيم محتملة يمكن الإختيار منها فقط. النوع enum مفيد جداً في حال أردت بناء كود مخصص فقط للتعامل مع نوع محدد من القيم و في حال حاول أي مبرمج آخر عدم الإلتزام بنوع البيانات الذي فرضته أنت و قام بتمرير قيم من نوع آخر فإنه يتم تنبيهه مباشرةً قبل تشغيل الكود و في حال أصر على ذلك و قام بتشغيل الكود فإن مترجم لغة C++ سيمنعه وقت التشغيل و يظهر له خطأ. بشكل عام, في حال أردت تعريف مجموعة قيم مترابطة يستحيل أن تتبدل فالخيار الأمثل هو تعريف هذه القيم في الأساس بداخل enum. أمثلة حول بعض المعلومات الثابتة في الحياة و التي أيضاً تعتبر ثابتة في المنطق هي: فصول السنة ( الخريف, الشتاء, الربيع, الصيف ) الإتجاهات ( الشمال - الجنوب - الشرق - الغرب ) أيام الأسبوع ( الإثنين - الثلاثاء - الأربعاء إلخ.. ) أشهر السنة ( كانون الثاني - شباط - آذار إلخ.. ) الجنس ( ذكر - أنثى ) عند التعامل مع هذا النوع الثابت من البيانات و الذي لا نريد لأحد أن يعبث به فإننا نستخدم النوع enum و هذا ما سنراه لاحقاً في الأمثلة.
الوراثة في السي بلاس بلاس ++C
مفهوم الوراثة في C++ في البداية, كلمة وراثة تعني تضمين محتوى كلاس في كلاس آخر. في C++, الكلاس يمكنه أن يرث من كلاس آخر حتى يحصل على الدوال و المتغيرات الموجودة فيه. إذاً فكرة الوراثة بسيطة لكن فائدتها قوية جداً. فمثلاً إذا كنت تريد إنشاء كلاس جديد و لاحظت أنه يوجد كلاس جاهز يحتوي على كودات قد تفيدك يمكنك استغلالها بدل كتابتها من الصفر, أي يمكنك جعل الكلاس الذي قمت بتعريفه يرث هذا الكلاس, و بعدها يمكنك إستخدام جميع المتغيرات و الدوال التي ورثها الكلاس الجديد من الكلاس الجاهز.
التغليف في السي بلاس بلاس ++C
مفهوم التغليف في C++ التغليف ( Encapsulation ) عبارة عن أسلوب يمكن اتباعه لإخفاء خصائص الكلاس ( Global Variables ) و جعل الكائنات التي تنشئها منه و الكلاسات الأخرى التي تقوم بتضمينه قادرة على التعامل مع هذه الخصائص فقط من خلال دوال يقوم بإنشائها المبرمج الأساسي للكلاس. إذاً فائدة التغليف أنه يتيح لك وضع شروط لتخزين القيم في الخصائص, كما أنه يتيح لك الحصول على القيم بالطريقة التي تريدها.
اعاده التعريف Overriding في السي بلاس بلاس ++C
مفهوم إعادة التعريف في C++ في الدرس السابق, شاهدت كيف أنه عندما يرث الكلاس من كلاس آخر فإنه يرث المتغيرات و الدوال الموجودة فيه. إعادة التعريف أو التعريف من جديد ( Overriding ) تعني تعريف نفس الدالة التي ورثها الكلاس الإبن من الكلاس الأب من جديد, و هذه الدالة الجديدة تكون مشابهة للدالة الموروثة من حيث الشكل فقط, أي لها نفس الإسم و النوع و عدد الباراميترات, لكن محتواها مختلف بهدف أن يكون متناسب أكثر مع الكلاس الإبن. الهدف الحقيقي من إعادة التعريف أو التعريف من جديد هو إتاحة الفرصة للكلاس الإبن ليعرّف الدوال حسب حاجته. في دروس متقدمة سنرث من كلاسات جاهزة في C++, و نفعل Override للدوال الموجودة فيها لكي تناسب التطبيقات التي سنقوم ببنائها.
مفهوم ال overloading في السي بلاس بلاس ++C
مفهوم الـ Overloading في C++ Overloading تعني تعريف أكثر من عامل, دالة أو كونستركتور لهم نفس الإسم و لكنهم يختلفون في عدد أو نوع الباراميترات. عند تعريف أكثر من كونستركتور لهم نفس الإسم يكون الهدف أنه عند إنشاء كائن يكون هناك أكثر من طريقة متاحة لتمرير قيم أولية للخصائص الموجودة فيه. عند تعريف أكثر من دالة لهم نفس الإسم يكون الهدف منهم إمكانية تنفيذ نفس العملية مع مراعاة عدد و أنواع القيم التي يتم تمريرها لللدالة عند استدعائها. عند تعريف أكثر من عامل لهم نفس الرمز يكون الهدف منهم تصغير حجم الكود عند التعامل مع الكائنات.
تعدد الاشكال في السي بلاس بلاس ++C
مفهوم تعدد الأشكال في C++ تعدد الأشكال أو بوليمورفيزم ( Polymorphism ) هو مجرد أسلوب في كتابة الكود يقصد منه بناء دالة تنفذ أوامر مختلفة على حسب الكائن الذي نمرره لها عند إستدعاءها. في العادة تعدد الأشكال يكون مربتط بشكل أساسي بالوراثة حيث تكون الدالة مبنية على أساس الكلاس الأب, و لكننا عند إستدعاءها نمرر لها كائن من إحدى الكلاسات التي ترث منه.
3- برمجة متقدمة لغة السي بلاس بلاس
الاخطاء في السي بلاس بلاس ++C
مفهوم معالجة الأخطاء في C++ معالجة الأخطاء ( Exceptions Handling ) يقصد منها كتابة الكود الذي قد يسبب أي مشكلة في البرنامج بطريقة تضمن أنه إذا حدث الخطأ المتوقع أو أي خطأ آخر فإن البرنامج لن يعلّق أو يتم إغلاقه بشكل فجائي. ظهور خطأ في البرنامج بشكل مفاجئ هو أمر سيئ جداً لأنه يؤدي إلى نفور عدد كبير من المستخدمين و عدم رغبتهم في العودة إلى استخدام هذا البرنامج مجدداً.
الملفات في السي بلاس بلاس ++C
معالجة الملفات في C++ التعامل مع الملفات أو معالجة الملفات ( Files Handling ) يقصد منها إجراء عملية ما على الملفات الموجودة في حاسوب المستخدم كقراءة محتوى ملف و عرضه في البرنامج, إنشاء نسخة منه, تعديل محتواه أو حذفه, سواء كان نوع الملف txt, jpg, mp4 أو أي نوع آخر.
مفهوم ال Generice في السي بلاس بلاس ++C
مفهوم الـ Generics في C++ الـ Generics هو أسلوب في كتابة الكود يجعلك قادراً على بناء كود واحد يلائم أكثر من نوع بيانات, و عند الحاجة إلى استخدام هذا الكود يمكنك إستخدامه كما هو أو تحديد نوع البيانات التي تريده أن يعمل معها حسب حاجتك. كل كلاس, إنترفيس أو دالة تجد الرمز < > موجود ضمن تعريفه, إعرف مباشرةً أنه مصمم للتعامل مع أكثر من نوع بيانات.
الحاويات في السي بلاس بلاس ++C
مفهوم STL في C++ STL هي إختصار لجملة Standard Template Library و هي عبارة عن مكتبة ضخمة تحتوي على دوال و كلاسات جاهزة تستخدم لتخزين مجموعة من القيم بشكل مرن جداً يجعل التعامل معها سهل للغاية من ناحية إضافة عناصر فيها, حذف عناصر منها, تحديث قيم عناصرها, ترتيب عناصرها و البحث فيها. و هي تتضمن الأشياء التالية: حاويات (Containers). خوارزميات (Algorithms). دوال (Functions). متواليات (Iterators). في هذا الدرس سنتعرف على جميع أنواع الحاويات الموجودة في هذه المكتبة و ستتعلم كيفية التعامل معها بتفصيل ممل.
لامدا في السي بلاس بلاس ++C
مفهوم الـ Lambda Expressions في C++ إبتداءاً من الإصدر c++11 تم إضافة أسلوب جديد يمكن استخدامه لتقليل حجم الكود عند تعريف دوال جديدة. الأسلوب الجديد الذي سنتعلمه في هذا الدرس لتعريف الدوال يقال له Lambda Expressions أو Closures أو Literals Function أو Lambdas فقط.
تعدد المهام في السي بلاس بلاس ++C
تعدد المهام في C++ عندما تستخدم هاتفك أو حاسوبك ترى أنه يمكنك تشغيل عدة برامج مع بعض في وقت واحد, كل برنامج شغال في الذاكرة يعتبر Process فمثلاً إذا قمت بتشغيل خمسة برامج مع بعض فهذا يعني أن نظام التشغيل ينظم عمل خمسة Processes مع بعض. آلية تشغيل عدة برامج مع بعض تسمى Multiprocessing. من جهة اخرى, في البرنامج الواحد يمكنك تنفيذ عدة أوامر مع بعض و جعل المستخدم يشعر كأنها تتنفذ في وقت واحد, فمثلاً في حال كنت تلعب لعبة مثل لعبة كرة القدم, تجد أنه هناك عدة أشياء تحدث في وقت واحد, فمثلاُ عند تشغيل اللعبة تسمع عدة أصوات ( مثل أغنية حماسية, صوت المعلق, صوت المشجعين, صوت صفارة الحكم في حال وقع خطأ إلخ.. ), بالإضافة إلى أنه يمكنك تحريك اللاعب و مشاهدة توقيت المبارة و الكثير من التفاصيل الأخرى التي تحدث كلها في نفس الوقت لتصنع لك لعبة رائعة. هذه الآلية تسمى تعدد المهام ( Multithreading ) لأن كل جزء شغال في البرنامج يكون عبارة عن مجموعة أوامر موضوعة بداخل ثريد ( Thread ) خاص. إذاً نستخدم آلية تعدد المهام لجعل البرنامج قادر على تنفيذ عدة أوامر مع بعض و كأنها تتنفذ في وقت واحد, و هذا ما سنتعلمه في هذا الدرس.
تضمين الملفات في السي بلاس بلاس ++C
ملفات المشروع في C++ في المشاريع البرمجية لا يتم وضع كل الكود و الذي قد يتألف من ملايين الأسطر البرمجية في ملف واحد لأن تطوير الكود مستقبلاً أو تصحيح الأخطاء الموجودة فيه سيكون صعباً جداً. لذلك يتم كتابة الكود بشكل منظم و تقسيمه لمجموعة من الملفات و عندها يصبح من السهل جداً تعديله أو تطويره في أي وقت بالإضافة لإمكانية أن يعمل كل مبرمج في المشروع على تطوير جزء منه. سابقاً كنا نكتب كل كود المشروع بداخل ملف واحد بهدف جعلك تركز على المفاهيم الجديدة التي كنا نشرحها في كل درس. في هذا الدرس ستتعلم كيف تقوم بتوزيع كود المشروع على عدة ملفات و من ثم كيف تتعامل معها و كأنها موجودة كلها في نفس الملف.
تضمين الملفات في السي بلاس بلاسالنطاقات في السي بلاس بلاس ++C
مفهوم النطاق في C++ النطاق ( Namespace ) أسلوب مفيد جداً في تنظيم كود المشروع نتبعه لضمان عدم حدوث أي مشكلة سببها إستخدام نفس أسماء الأشياء التي تم تعريفها أكثر من مرة, أي لتجنب حدوث تضارب في الأسماء. إذا كنت أنت من يبني كل كود المشروع فإنك على الأغلب لن تواجه مشكلة سببها تضارب الأسماء لأنك أنت من تحدد أسماء الأشياء التي تقوم بتعريفها و بالتالي فإنك تعرف ما هي كل الأسماء التي وضعتها للمتغيرات و الدوال و الكلاسات في مشروعك. بينما حين تبدأ بتضمين مكتبات و ملفات فيها كود جاهز فهنا يصبح هناك احتمال كبير لحدوث تضارب بالأسماء. لاستخدام أي أسماء تريد في مشروعك بدون القلق ما إن كان تضمين أي كود جاهز فيه قد يسبب مشكلة تضارب الأسماء يمكنك من البداية وضع الكود الخاص فيك بداخل نطاق. عندها حتى إن كان كودك فيه نفس أسماء المتغيرات و الدوال و الكلاسات الموجودة في الكود الجاهز فإن هذا الأمر لن يسبب أي مشكلة بالنسبة للمترجم لأنه قادر على التفريق بينهم بكل سهولة.
المكتبات في السي بلاس بلاس ++C
مفهوم المكتبات البرمجية في C++ المكتبة ( Library ) عبارة عن ملف يمكن أن يحتوي على كلاسات و دوال جاهزة بمجرد تضمينها في المشروع تصبح قادر على استخدام كل ما هو موجود فيها و كأنها جزء من المشروع. في العادة عندما يجد المطور نفسه دائماً ما يستخدم نفس الكلاسات و الدوال في مشاريعه يقوم بوضعهم بداخل مكتبة واحدة و كلما احتاج إليها يقوم بتضمينها في مشروعه. الآن, عليك معرفة أنه يوجد نوعين من المكتبات التي يمكن تضمينها في المشروع: مكتبات ثابتة ( Static Libraries ) و يكون امتدادها .lib على نظام ويندوز و .a على نظامي لينكس و ماك. مكتبات ديناميكية ( Dynamic Libraries ) و يكون امتدادها .dll على نظام ويندوز و .so على نظامي لينكس و ماك. المكتبة التي تنشئها بنفسك أو التي تقوم بتحميلها من النت, يمكنك وضعها في أي مكان تريد على حاسوبك و نقصد بذلك أنك لست مجبر على وضع المكتبات في مكان محدد حتى يسمح لك باستخدامها. لاحقاً عند الحاجة لاستخدام المكتبة في أي مشروع, يجب إعلام المترجم بمكان وجودها حتى تصبح قادراً على تضمين أي ملف موجود فيها و البدء باستخدام الكود الموجود فيه. الأفضل و الأسهل لك دائماً هو أن تخصص مكان في حاسوبك تضع فيه كل المكتبات التي قد تستخدمها
بعد تعلم في السي بلاس بلاس ++C
ماذا أتعلم بعد أن تعلمت لغة C++ في البداية, هناك مجالات عديدة يجب أن تتخصص بأحدها و ليس فيها كلها لأن هذا مستحيل. أي لا تفكر أبداً بأن تتخصص في عدة مجالات في وقت واحد. لأنك إن حاولت ذلك فـأكد أنك في مرحلة ما ستيأس و تمل من شدة الضغط الذي سببته لنفسك. إذاً, بعد أن تتعلم لغة C++ يمكنك إعتمادها في أحد المجالات التالية: تطوير الألعاب (Game Development). برمجة الروبوتات (Robotics). بناء أنظمة التشغيل (Operating Systems). تطوير تطبيقات للحاسوب (Software Development). تطوير المواقع (Web Development). الذكاء الإصطناعي (Artifical Intelligence).