بسم الله الرحمن الرحيم
سي++ (تنطق: سي بلس بلس) (بالإنجليزية: ++C) هي لغة برمجة كائنية متعددة الاستخدام. يعتبرها الكثيرون اللغة الأفضل لتصميم التطبيقات ذات الواجهات المعقدة، وللتعامل مع البنية الصلبة للحاسوب وذلك لسرعتها في التنفيذ والتي لا تختلف كثيرًا عن السي[1]، ولأنها من لغات البرمجة عالية المستوى، وفي نفس الوقت قريبة من لغة التجميع ذات المستوى المنخفض؛ حيث يمكن إضافة كود من لغة التجميع وإدراجه في الملف المصدري للسي++، كما أنها توفر تعامل أكثر تعقيدًا مع البيانات. يعتبرها البعض اللغة البرمجية التي تُعرف البرمجة الحقيقية.[2] كما أنها تعد لغة برمجة إجرائية (يمكن كتابة برنامج يحتوي على إجراءات وتوابع فقط) وذلك لأنها في الأصل مشتقة من لغة سي الإجرائية، إلا أن بيارن ستروستروب طورها لتدعم أيضا البرمجة كائنية التوجه، حيث البرنامج المكتوب عبارة عن أصناف أو كائنات لها أدواتها الخاصة وقدراتها المستقلة، مما أدى إلى ظهور تقنية التعدد التعدد الكائني والتوريث.
يتجنب الكثير من المبرمجين السي++ نظراً لشهرتها كلغة برمجة معقدة. وقد أدى ذلك إلى استخدام الكثيرين للغات أخرى مثل فيجوال بيسك ودلفي وجافا وسي شارب. الأخيرتان هما مجرد تسهيل (وليس تطوير) للغة سي++، وبدا في وقت معين أن لغات مثل جافا سوف تستولي على سوق البرمجيات التجارية من سي++ مع هجرة عدد كبير من مبرمجي السي++ إلى جافا وسي شارب، إلا أنه سرعان ما أدرك المبرمجون أن السي++ هي السبيل الوحيد لإنتاج برامج تجارية قوية وسريعة وتؤدي المطلوب منها بكفاءة وبأقل عدد من الأخطاء
طور بيارن ستروستروب (Bjarne Stroustrup) خلال عمله في مختبرات بيل لغة سي++ في الثمانينيات كتحسين للغة سي. تشمل سي++ جميع مزايا السي مع تعديلات طفيفة، بالإضافة إلى مزايا البرمجة الكائنية. تسهّل لغة سي++ الأسلوب المُهيكل والمنهجي لعملية تصميم البرامج، وتعتمد على الكائنات بنيةً أساسية لتشكيل البرامج. كما هو الحال مع لغة سي، فإن سي++ لغة متعددة الاستخدامات، إلا أنها مناسبة لبرامج أنظمة التشغيل. وتكتب معظم أجزاء أنظمة التشغيل وبرامج مساعدة أنظمة التشغيل باستخدامها سي++ ومنها نظام جنو/لينكس.
يجدر بالذكر أن سي++ المستخدمة الآن، أعقد بكثير من تصميم ستروستروب الأولي في ثمانينيات القرن العشرين[3]، ويرجع ذلك إلى التطوير المتلاحق التي شهدته، والاهتمام من قبل المبرمجين. ولعلى أهم تطوير ساهم بتعقيدها هو كتابة ألكسندر ستيبانوف في التسعينيات لمكتبة القوالب القياسية.
الإضافة الأهم التي أتت بها السي++ عن السي هي البرمجة بالكائنات، حيث تعتمد السي على البرمجة الإجرائية والتي كانت كافية في وقتها. إلا أن ظهور أنظمة التشغيل ذات الواجهة الرسومية، وزيادة التعقيد والأخطاء وخاصة مع تداخل الوظائف البرمجية وكبر حجم الملف المصدري، نقل العديد من المبرمجين إلى البرمجة بالكائنات. كما أن أحد أهم خصائصها دعمها للبرمجة العامة.
بما أن السي++ تطوير للسي، فالبرمجة فيها تبدو قريبة إلى السي إذا لم تستخدم فيها البرمجة الكائنية. وبطبيعة الحال، شمل تطوير السي++ بعض التعديلات على كتابة البرنامج
بين السي والسي++
وفقاً لمواصفات سي++، فإنها تدعم لغة سي بشكل كامل (دعم رجعي). وتقنيًا يمكن لمعظم الملفات المصدرية السي أن تُصرف بمصرفات سي++، ولهذا تسمى هذه المصرفات بمصرفات سي/سي++. إلا أن الأمر لا يخلو من بعض المشاكل غير المتوقعة.
استخدام الرمز // لتضمين الملاحظات بطول سطر واحد والتي يتم تجاهلها من قبل المترجم عند القيام بعملية الترجمة.