سي++ (لغة برمجة)
Paradigm | Multi-paradigm:procedural, functional, object-oriented, generic |
---|---|
Designed by | Bjarne Stroustrup |
First appeared | 1983 |
الإصدار المستقر | ISO/IEC 14882:2014
/ ديسمبر 15 2014
|
Typing discipline | Static, nominative |
Implementation language | C++ |
OS | Cross-platform (multi-platform) |
Filename extensions | .cc .cpp .cxx .C .c++ .h .hh .hpp .hxx .h++ |
Website | News, 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#,Falcon, Seed7 | |
|
سي++ (تنطق: سي بلس بلس) بالإنگليزية: ++C هي لغة برمجة للاستخدامات العامة، تعتبر لغة السي++ لغة برمجة كائنية. والتي يعتبرها الكثيرون اللغة الأفضل لتصميم التطبيقات ذات القابلة الكبيرة وللتعامل مع البنية الصلبة للحاسب. ولغة السي بلس بلس ++C من لغات البرمجة العالية المستوى وفي نفس الوقت قريبة من لغة التجميع ذات المستوي المحدود كما أنها تعد لغة برمجة إجرائية(يمكن كتابة برنامج يحتوي على إجراءات وتوابع فقط) كما تعد لغة غرضية التوجه(البرنامج المكتوب تعبير عن صفوف وتستخدم الخواص المتاحة من كبسلة وتعددية الأشكال والوراثة والهجريب...). وهي لغة ناشئة من لغة C الذي قام بتطويرها بيارن ستروستروب إلي ++C.
تاريخ السي بلس بلس
طور بيارن ستروستروب (Bjarne Stroustrup)، والذي كان يعمل في مختبرات بيل، لغة السي++ في الثمانينات كتحسين للغة السي (لغة برمجة)سي، تضم السي++ جميع مزايا السي بالأضافة إلى مزايا البرمجة الكائنية، تسهّل لغة ++C الأسلوب المهيكل والمنهجي لعملية تصميم البرامج، وتعتمد على الكائنات كبنية أساسية لتشكيل البرامج.
ومثلها مثل لغة السي، فان السي++ هى لغة متعدده الاستخدامات الا انها مناسبة لبرامج أنظمة التشغيل. وتخط معظم أجزاء أنظمة التشغيل وبرامج مساعدة أنظمة التشغيل باستخدام السي++ ومنها نظام جنو/لينكس.
ويتجنب الكثير من المبرمجين لغة السي++ والسي نظرا لشهرتهما كلغات برمجة معقدة. وقد أدى ذلك إلى استخدام الكثيرين للغات مثل فيجوال بيسك وديلفي ثم جافا وسي شارب والأخيرتين هما مجرد تسهيل (وليس تطوير) للغة السي++ وبدا في وقت معين حتى لغات مثل الجافا يفترض أن تستولى على سوق البرمجيات التجارية من السي++ مع هجرة عدد كبير من مبرمجى السي++ إلى جافا وسي شارب ، الا أنه سرعان ما استوعب المبرمجون حتى السي++ هى السبيل الوحيد لإنتاج برامج تجارية قوية وسريعة وتؤدى المطلوب منها بكفاءة وبأقل عدد من الأخطاء.
Standardization
Year | C++ Standard | Informal name |
---|---|---|
1998 | ISO/IEC 14882:1998 | C++98 |
2003 | ISO/IEC 14882:2003 | C++03 |
2007 | ISO/IEC TR 19768:2007 | C++07/TR1 |
2011 | ISO/IEC 14882:2011 | C++11 |
2014 | ISO/IEC 14882:2014 | C++14 |
2017 | to be determined | C++17 |
Operators and operator overloading
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++
- include <iostream>
using namespace std;
int main(){
cout << "Hello, World!" << endl; return 0;
</source>
التطور المستقبلي
لا تزال لغة سي++ تواصل تطورها. فهناك نسخة جديدة من سي++ قيد التطوير، وتسمى سي++0اكس، وقد صدرت في مارس 2009، يشير العمل الحالي بأنّ سي++ سيواصل الاستفادة من طبيعته متعددة المثال. boost مجموعة تعمل للاستفادة إلى أبعد الحدود من سي++ في شكله الحالي. هم يتوسّعون كثيرا في سي++ من حيث الوظيفية والقدرات وينصحون أيضا لجنة معايير سي++ التي تعمل فيها الميزّات حسنا والتي بحاجة التحسين.
انظر أيضاً
- سي (لغة برمجة)
- Bjarne Stroustrup
- C++ Standard Library
- International Organization for Standardization
- Outline of C++
- List of C++ compilers
- The C++ Programming Language
- Comparison of programming languages
References
- ^ Stroustrup, Bjarne (1997). "1". The C++ Programming Language (Third ed.). ISBN . OCLC 59193992.
-
^ 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.
- ^ "ISO/IEC 14882:1998". International Organization for Standardization.
- ^ "ISO/IEC 14882:2003". International Organization for Standardization.
- ^ "ISO/IEC TR 19768:2007". International Organization for Standardization.
- ^ "ISO/IEC 14882:2011". International Organization for Standardization.
- ^ "ISO/IEC 14882:2014". International Organization for Standardization.
وصلات خارجية
- مسقط يحتوي على شروحات للغة ++C
- صفحة بيارنه ستروستروب
- مرجع في ال ++C
- مترجم مجاني لنظام ويندوز
- المترجم الحر من جنو
- دروس وأمثله في سي++
- مسقط موج : المصدر المفتوح لعدة لغات برمجية , وتعليمي ايضاً
نطقب:C++ProLang
لغات برمجة | |
لغات كائنية | |
سي++ ++C |
سي شارپ #C |
دلفي (لغة برمجة) Delphi |
ادا 95 Ada |
جاڤا Java |
سمولتوك Smalltalk |
روبي Ruby |
اوبجكت پاسكال Object Pascal |
لغات تقليدية | |
بيسيك Basic |
سي C |
باسكال Pascal |
كوبول COBOL |
فورتران FORTRAN |
أسمبلي Assembly |
لغات وظيفية | |
ليسپ Lisp |
پرولوگ Prolog |
پايثون Python |
پاريس Paris |
هندسة برامج | |