هل يجب أن أتعلم لغة C++ بناءً على المعايير (المواصفات) الجديدة أو القديمة؟

StackOverflow https://stackoverflow.com/questions/865209

  •  21-08-2019
  •  | 
  •  

سؤال

حسنًا، أفكر في البدء في تطوير لغة c++ في الأشهر القادمة (ليس هناك تاريخ محدد).أنا على دراية باللغة (في المقام الأول C)، بالإضافة إلى بعض أساسيات OO وMI والقوالب والاستثناءات والأنماط المستخدمة في STL.والآن وصلت إلى مرحلة زمنية أرغب فيها في إتقان اللغة بعمق.والسؤال الطبيعي هو ما إذا كان ينبغي علي ذلك
ابدأ بالتيار ج++03 أو C++0x معيار.

يرجى اقتراح أفضل طريقة للانتقال من مستخدم إلى خبير، نظرًا لأن المعيار الجديد قد أصبح موجودًا تقريبًا، ومن المرجح أن يبقى لسنوات عديدة قادمة.

شكرًا

هل كانت مفيدة؟

المحلول

توصيتي هي أن تبدأ في المنتصف.ابدأ بـ C++03، ولكن تحقق من الميزات وC++0x libs التي يقدمها بعض المترجمين بالفعل كثيرًا.اعتبارًا من الآن، يعد C++03 هو المعيار (ليس رسميًا فقط، ولكن معظم التعليمات البرمجية التي ستجدها ستكون C++03 بشكل صارم).

الآن، إذا كنت تنوي التعلم فاذهب للأفضل:ابدأ سريعًا بأساسيات STL وانتقل إلى مكتبات Boost على الفور.تعلم القوالب بالطريقة الكاملة، واقرأ عن البرمجة الوصفية.الاستخدام الحديث لـ C++ 03 سوف يضعك على المسار الصحيح لـ C++ 0x.

نصائح أخرى

تعلم المعيار الأقدم C++03.لا يزال C++0X على بعد عامين (على الأقل) حتى يتم التصديق عليه كمعيار.بمجرد توحيدها، سوف يستغرق الأمر بعض الوقت من قبل أي تظهر تطبيقات مطابقة تدعم جميع ميزاتها، وسيستغرق الأمر وقتًا متساويًا طويل الوقت قبل أن تصبح تطبيقات C++0X شائعة الاستخدام بشكل كبير.

في رأيي، تعلم C++03 أكثر عملية.إذا كنت لا تمانع في تعلم ميزات جديدة ولكن يمكنك استخدامها جزئيًا لعدة سنوات، فإن C++0x هو الأفضل.الخبر السار هو الإصدار الجديد من g++ وvc++2010 الذي تم بالفعل تنفيذ أجزاء من ميزات c++0x الجديدة.

يعد تعلم ميزات C++0x الجديدة طريقة رائعة لمعرفة المزيد حول C++03 بعمق لأنك ترى كيف يعمل C++03، والمشاكل المتعلقة به، وما يقترح c++0x القيام به لحل هذه المشاكل .

لقد مررت بهذه التجربة مؤخرًا للتعرف على مراجع rvalue الجديدة ودلالات النقل.يوجد في C++03 الكثير من عمليات الإنشاء والنسخ المؤقتة غير الضرورية في التعبيرات، وكان التعرف على سبب وجود هذه المشكلة في c++03 وكيف يحل C++0x هذه المشكلة أمرًا مفيدًا جدًا وأبلغني بتطوير C++ الحالي.

سوف تمر بضع سنوات قبل أن يصبح مترجمو C++ 0x شائعين.لذا، في الوقت الحالي، ليس لديك الكثير من الخيارات.تعلم C++03، ومن ثم يمكنك تعلم الأشياء الجديدة بشكل منفصل، عندما يحين الوقت.الاختلافات الأساسية ليست كبيرة.0x هو في الغالب مسألة ميزات جديدة يتم تثبيتها، ويتم تعميم الميزات الحالية وتبسيطها.ستظل المعرفة بـ C++03 قابلة للتطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top