الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]ما هي أهم الفروق بين سي و سي++ ؟

مغلقمُجاب
بدأه AyoubHub في 3 نوفمبر 2013 · 5 رد · 1,179 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله تعالى و بركاته

 

يا إخواني أنا جديد معكم في هذا الموقع الذي ما أريد قوله في أول زيارة لي عنه أنه فعلا رائع و كنت أبحث عنه

 

المهم لندخل في صلب الموضوع ما أوده هو أخذ رأيكم في ما هي اللغة الأفضل من حيث الفعالية و السرعة و ليس السهولة فأنا الآن أكملت دراسة c و c++ من النت :evil:   و لكن ما أريده هو رأيكم في أي لغة يجب علي التركيز هل c ام c++ فأنا مبتدإ و أريد الإنطلاق الجيد في عالم برمجة البرامج و الألعاب و الحماية فبماذا تنصحونني :excited:

#2

و عليكم السلام ورحمة الله و بركاته

 

أهلا بك معنا في هذا المنتدى الرائع و أرجو أن تستفيد و تفيد 

 

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

 

أرجو لك التوفيق و النجاح و الانطلاقة القوية....اجتهد حتى تحقق حلمك

 

ثـــــــــــــــــــــــــــابــــــــــــــــــــــــــــــر :)  :lol:  

تم تعديل هذه المشاركة بواسطة tantie L في 3 نوفمبر 2013 في 08:03

1

ابتسم للدنيا تبتسم لك و افعل الخير و انساه و لا تنسى أي أمر سيء قمت به حتى لا تكرره


لا تنسونا من صالح دعائكم أعانكم الله و ثبتكم على سواء السبيل


:)  :lol:  ^_^ 

#3 أفضل إجابة

السلام عليكم

 

السي عبارة عن procedural language أما سي++ فهي object-oriented language.

كل ما يمكنك فعله بالسي, يمكنك تقريبا فعله بالسي++ و العكس غير صحيح.

تم تصميم سي++ لكي تدعم الـ OOP و تحافظ في نفس الوقت على syntaxe السي لذلك تجد أن اللغتين متقاربتين في طريقة الكتابة لكن الـ Programming mentality تختلف بشكل كبير جداً.

 

يمكننا تلخيص أهم الفروق بين اللغتين في النقاط التالية :

  1. يُمكن الإعلان عن المتغيرات في أي مكان من الكود في سي++ أما في السي فلا.
  2. السي++ تدعم الـ Boolean variables أما في السي فلم تكن توجد مثل هذه المتغيرات قبل معيار C99.
  3. في السي, نستخدم الدالة printf للكتابة و scanf للقراءة أما في سي++ فنستخدم على التوالي الكائنين cin و cout.
  4. للرجوع إلى السطر نستخدم \n في السي و std::endl في السي++.
  5. على عكس السي++, يمكننا استدعاء الدالة الرئيسية main من خلال دوال أخرى في السي.
  6. يمكننا إسناد عنوان من نوع void* بشكل ضمني في السي, هكذا :
    int * x = malloc (sizeof (int) * 10);

    و لكن السي++ لا تسمح بذلك. السبب في رفض هذا النوع من الإسناد يعود إلى أن مصمم اللغة (Bjarne Stroustrup) يعتقد أن مؤشرات void ليست آمنة لأنه أحيانا يمكن أن تُشير إلى لا شيء و بالتالي عند إسناد العنوان الذي يُشير إليه المؤشر إلى مؤشر آخر لن تجد أي تحذير بخصوص الأمر.

  7. السي تسمح بالتمرير بالقيمة أو العنوان (pass by value/address) أما السي++ فأضافت نوعا جديداً وهو التمرير بالمرجع (pass by reference)
  8. السي تستخدم عائلة l*alloc (مثل malloc, valloc, calloc, realloc) لحجز الذاكرة و free لتحريرها و memset للتصفير أما سي++ فتستخدم المعامل new للحجز و delete للتحرير.
  9. السي++ تحتوي على المفاهيم التالية  على عكس السي :

Virtual functions

Operator overload

namespace

Exception handling

 

 

أنصحك بتلعم أساسيات السي ثم الإنتقال بعد ذلك إلى السي++.

تم تعديل هذه المشاركة بواسطة Snack3r في 3 نوفمبر 2013 في 12:03

5
#4

@tantie L

مشكووور يا أخي على مشاركتك ، أصلا هم هنا في المغرب يقومون بتدريس لغة c# ولكن ذلك بعد الحصول على شهادة الباكلوريا واع يا لها من دراسة مشينة أنتظر حتى حصول على تلك الشهادة ثم بعد ذلك أبدأ بالتعلم و لغة c# التي أصلا تحدك في كل شيئ لذلك أنا أصلا تعلمت c ثم c++ من النت

 

مشكووور على تمنياتك أتمنى لك أيضا التوفيق و النجاح و بلوغ أي شيئ توده إن شاء الله

@Snack3r

مشكووور يا أخي على الشرح الرائع أظن أنه على التركيز و التعامل فقط ب c++ :huh:

 

مشكووور يا أخي على النصيحة هذا ما فعلته تعلم c ثم إنتقلت إلى c++ ^_^

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 3 نوفمبر 2013 في 18:48 — السبب: إزالة الاقتباس ودمج الردود

#5
Snack3r كتب:
  1. يُمكن الإعلان عن المتغيرات في أي مكان من الكود في سي++ أما في السي فلا.

 

هذا فقط في c89، أما c99 ومايليها يمكن الإعلان عن المتغير في أي مكان.

1
#6

أهلا Mr.B :)

 

اقتباس
هذا فقط في c89، أما c99 ومايليها يمكن الإعلان عن المتغير في أي مكان.

 

صحيح, الملاحظتين الأولى و الثانية ينطبقان فقط على ما قبل المعيار C99.

كنت قد جمعتُهما في ملاحظة واحدة و عند فصلهما نسيتُ إضافة التنبيه في الملاحظة الأولى.

تم تعديل هذه المشاركة بواسطة Snack3r في 3 نوفمبر 2013 في 14:30

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…