سي++ (لغة برمجة)

C++
ParadigmMulti-paradigm:[1] procedural, functional, object-oriented, generic
Designed byBjarne Stroustrup
First appeared1983
الإصدار المستقر
ISO/IEC 14882:2014 / ديسمبر 15 2014 (2014-12-15); 2804 days ago
Typing disciplineStatic, nominative
Implementation languageC++
OSCross-platform (multi-platform)
Filename extensions.cc .cpp .cxx .C .c++ .h .hh .hpp .hxx .h++
WebsiteNews, status & discussion about Standard C++
Major implementations
LLVM Clang, GCC, Microsoft Visual C++, Intel C++ Compiler
Influenced by
C, Simula, ALGOL 68, Ada, CLU, ML
Influenced
Perl, LPC, Lua, Pike, Ada 95, Java, PHP, D, C99, C#,[2] Falcon, Seed7

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

تاريخ السي بلس بلس

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

ومثلها مثل لغة السي، فان السي++ هى لغة متعدده الاستخدامات الا انها مناسبة لبرامج أنظمة التشغيل. وتكتب معظم أجزاء أنظمة التشغيل وبرامج مساعدة أنظمة التشغيل باستخدام السي++ ومنها نظام جنو/لينكس.

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


Standardization

Year C++ Standard Informal name
1998 ISO/IEC 14882:1998[3] C++98
2003 ISO/IEC 14882:2003[4] C++03
2007 ISO/IEC TR 19768:2007[5] C++07/TR1
2011 ISO/IEC 14882:2011[6] C++11
2014 ISO/IEC 14882:2014[7] C++14
2017 to be determined C++17


Operators and operator overloading

Operators that cannot be overloaded
Operator Symbol
Scope resolution operator قالب:C-lang
Conditional operator قالب:C-lang
dot operator قالب:C-lang
Member selection operator قالب:C-lang
"sizeof" operator قالب:C-lang
"typeid" operator قالب:C-lang


#include <iostream>
#include <vector>

int main() {
    try {
        std::vector<int> vec{3,4,3,1};
        int i{vec.at(4)}; // Throws an exception, std::out_of_range (indexing for vec is from 0-3 not 1-4)
    }

    // An exception handler, catches std::out_of_range, which is thrown by vec.at(4)
    catch (std::out_of_range& e) {
        std::cerr << "Accessing a non-existent element: " << e.what() << '\n';
    }

    // To catch any other standard library exceptions (they derive from std::exception)
    catch (std::exception& e) {
        std::cerr << "Exception thrown: " << e.what() << '\n';
    }

    // Catch any unrecognised exceptions (i.e. those which don't derive from std::exception)
    catch (...) {
        std::cerr << "Some fatal error\n";
    }
}



بين السي والسي++

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

الجديد في سي++

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

و هذا بالإضافة إلى وجود مكتبات جديدة لأداء مهام الادخال والاخراج تعتمد على الكائنات. &

بنية البرنامج في السي بلس بلس

ما هو التّابع function وما هي الإجرائيّة procedure ؟

إن كل مجموعة تعليمات تتواجد مع بعضها تدعى Block (التّابع هو مجموعة) ويمكن للتّابع أو للإجرائيّة أن يحوي مجموعات جزئيّة عديدة. (إن ذكر كلمة "إجرائيّة" قليل جدّاً في لغة سي بلس بلس، لذلك قد لا نجدها في شروحات هذه اللّغة)

البنية الأساسيّة لبرنامج سي بلس بلس

إنّ بنية البرنامج أساساً تقوم على التّوابع ! حيث يكون البرنامج بكامله عبارة عن تابع أساسي يستدعي التّوابع الأخرى في البرنامج. أي بمعنى آخر..... مجموعات كل منها تحوي تعليمات مختلفة يتمّ التّنقّل بينها وفقاً لبرمجة المبرمج، أو ردّ المستخدم.


أمثلة

مثال لطباعة !Hello, World بالسي++

هذا المثال يطبع عبارة "Hello, World!" على شاشة "موجّه الأوامر" .... يعمل هذا البرنامج على برنامج مايكروسوفت فيجوال سي بلس بلس 100% وقد لا يعمل على محرّكات أخرى.

//This program show a message 'Hello, World!' on the screen (on console) //This program works 100% on Microsoft Visual C++

  1. include <iostream>

using namespace std;

int main(){

  cout << "Hello, World!" << endl;
  return 0;
   

}

</source>

التطور المستقبلي

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

انظر أيضاً

References

  1. ^ Stroustrup, Bjarne (1997). "1". The C++ Programming Language (Third ed.). ISBN 0-201-88954-4. OCLC 59193992.
  2. ^ Naugler, David (May 2007). "C# 2.0 for C++ and Java programmer: conference workshop". Journal of Computing Sciences in Colleges. 22 (5). Although C# has been strongly influenced by Java it has also been strongly influenced by C++ and is best viewed as a descendant of both C++ and Java.
  3. ^ "ISO/IEC 14882:1998". International Organization for Standardization.
  4. ^ "ISO/IEC 14882:2003". International Organization for Standardization.
  5. ^ "ISO/IEC TR 19768:2007". International Organization for Standardization.
  6. ^ "ISO/IEC 14882:2011". International Organization for Standardization.
  7. ^ "ISO/IEC 14882:2014". International Organization for Standardization.

وصلات خارجية

قالب:C++ProLang

هناك كتاب ، برمجة:سي بلس بلس، في معرفة الكتب.


لغات برمجة
لغات كائنية
سي++
++C
سي شارپ
#C
دلفي (لغة برمجة)
Delphi
ادا 95
Ada
جاڤا
Java
سمولتوك
Smalltalk
روبي
Ruby
اوبجكت پاسكال
Object Pascal
لغات تقليدية
بيسيك
Basic
سي
C
باسكال
Pascal
كوبول
COBOL
فورتران
FORTRAN
أسمبلي
Assembly
لغات وظيفية
ليسپ
Lisp
پرولوگ
Prolog
پايثون
Python
پاريس
Paris
هندسة برامج
الكلمات الدالة: