ما هي أفضل طريقة للانتقال من Java/C# إلى C++؟[مغلق]

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

  •  09-06-2019
  •  | 
  •  

سؤال

في جامعتي، كانت معظم فصولي الدراسية باللغة جافا.لقد تعلمت مؤخرًا لغة البرمجة C# (وبيئة Visual Studio) في فترة تدريب صيفية.أنا الآن أتلقى فصلًا دراسيًا عن مقدمة لرسومات الكمبيوتر ويفضل طالب الدراسات العليا الذي يقوم بتدريس الفصل استخدام C++ للوصول إلى روابط OpenGL عبر GLUT.

هل لدى أي شخص أي موارد جيدة حول كيفية إجراء انتقال جيد من Java/C# إلى C++؟من الواضح أن المؤشرات ستكون مشكلة كبيرة، ولكن هل هناك أي أشياء أخرى يجب أن أبحث عنها؟أي دروس وأدلة وما إلى ذلك.سيكون من المفيد جدا!

شكرًا!

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

المحلول

نعم لقد تعرضت لنفس الخللاتجهت الجامعة إلى الاعتماد على لغة Java، ومن ثم سمحت لك باختيار اللغة التي تريد العمل بها أثناء المشاريع.

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

اجعلها ممتعة وانتزع أ كتاب تطوير الألعاب بلغة C++ حتى لا يصبح الأمر مخدرًا للعقل بسرعة كبيرة.

إليك بعض الأماكن التي وجدتها مفيدة أثناء التعلم

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

نصائح أخرى

إذا كنت تعرف Java/C# بالفعل، فإنني أوصي بالانتقال مباشرةً إلى لغة C بدلاً من لغة C++.وفقًا لموقع الويب، فإن GLUT لديه نفس الارتباطات لـ C مثل C++، لذا يجب أن تكون جاهزًا.على أي حال، أفضل طريقة لتعلم لغة C هي شراء وقراءة نسخة من "لغة البرمجة C" والجلوس مع مترجم C الخاص بك وتشغيل الأشياء الخاصة بك.

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

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

أحب هذا الكتاب في جميع الإصدارات الثلاثة، وكان أحد الكتب في الفصل الدراسي الذي كنت أدرسه في جامعة UT، لكنه ليس كتاب البداية.يمكنك أن تصبح مرتاحًا في لغة C++ مع القليل من المعلومات، على الرغم من أنك بالتأكيد لن تكون واحدًا مع المترجم حتى تقرأ عمل ماير.

لا أعرف إذا كانت لا تزال مطبوعة ولكني وجدتها التنقل في لغة C++ مفيد، ولكنني أيضًا كنت مرتاحًا جدًا للمؤشرات من باسكال.أخطئ بالطبع، لقد نسيت أنه قبل 15 عامًا كان عليك أن تتعلم ما هو OOP، أما الآن فقد أصبح الأمر أكثر افتراضًا.لذلك ربما لم يكن ماير خارج الخط.أفكار؟

ويكيبيديا لديها مقال عن مقارنات بين Java و C++.

لا داعي للقلق بشأن الاستثناءات المحددة في لغة C++، ولكن عليك أن تعرف عنها صحة ثابت.

هناك نوعان من الاختلافات الرئيسية:بناء الجملة، وإدارة الذاكرة.

في لغة C++، لديك مؤشرات، وهي مراجع كائنات أكثر قوة (أو أقل قوة اعتمادًا على تفسيرك للقوة)، والتي تعرفها بالفعل من Java.

في Java يمكنك القيام بذلك:

Thing mything = new Thing(); // mything is an object reference
mything.method();

في C++ ستفعل هذا:

Thing * mything = new Thing(); // mything is an object pointer
mything->method();
delete mything;

والفرق النحوي واضح:"->" بدلاً من "." عند استدعاء طريقة كائن من مؤشر إلى كائن.في لغة C++، يجب عليك تحرير الذاكرة بشكل صريح عند الانتهاء من استخدام كائن ما.في نهاية اليوم، أنت تفعل الشيء نفسه في C++ وJava، حيث تقوم بإنشاء كائنات وطرق الاتصال، وتضع فواصل منقوطة عديمة الفائدة في نهاية كل سطر، وما إلى ذلك.هل من عجب أن لغة بايثون أصبحت شائعة جدًا؟:

mything = Thing() # mything is whatever I want it to be
mything.method()

سيساعدك تصفح أي نص C++ لائق على ملء بقية التفاصيل.

كما أوصي بشدة بـ Bruce Eckel التفكير في C++.كتاب رائع للمبرمجين ذوي الخبرة الذين يرغبون في الدخول في عقلية C++.

إنه لطيف بما يكفي لعمل نسخ إلكترونية من كتبه متاح مجانا.

أوصي بشدة أن يقرأ أي شخص يتعلم C ++ Stroustrups "لغة برمجة C ++." لدى Meyers و Eckel أشياء رائعة ، لكن لا شيء يتفوق على التعلم من الرجل الذي قرر ما يجب أن تكون عليه اللغة وكيف كان يعتزم استخدامه.

كان لي نفس القضية بالضبط.الكتاب الوحيد الذي تمكنت من العثور عليه هو "Pro Visual C++ 2005 لمطوري C#" بقلم Dean C.الوصايا.إنها قراءة جيدة مع أمثلة ممتازة، وأعتقد أن الزاوية التي يأتي منها الكتاب هي على الأرجح ما تبحث عنه.

سوف تحتاج إلى شعور مختلف تمامًا للتعامل مع الذاكرة.فكر أيضًا في تحرير كل ما لم تعد بحاجة إليه.في Java وC#، ما عليك سوى ترك العناصر الخاصة بك وتصبح الذاكرة مرتبة بالنسبة لك - لا يمكنك فعل ذلك في CPP

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