ما هي بعض المراوغات / مفاجآت مع طريق .mm الملفات في الهدف-C؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

وأريد أن استخدام بعض مجموعات STL C ++ في بلدي الهدف-C فون التطبيق. ويبدو أن هذا ممكن عن طريق إعطاء ملفات التمديد ".mm". ما هي بعض من المراوغات / المفاجآت المرتبطة بهذا؟

وأريد أن استخدام الحاويات الأساسية التي أنا على دراية (ناقلات، الطابور، مجموعة، ...)

وهتاف!

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

المحلول

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

نصائح أخرى

ووهوس كبير من الهدف-C ++ هي أنه إذا كنت لم تمر -fobjc-الدعوة-cdtors CXX إلى g ++، فإنه لن ندعو منشئ والمدمر من المتغيرات المثال C ++ في الأشياء ObjC. حتى أن نتذكر أن تحويل هذا الخيار، ويجب أن تكون جيدة.

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

وأنت سأشعر بالدهشة كيف أنها تعمل بشكل جيد. أنا لم نصل حقا إلى أي مشاكل اختلاط الكائنات C و C ++ في ملف .mm.

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