هل لكل فئة مُنشئ افتراضي C ++؟
هل لكل فئة مُنشئ افتراضي C ++؟

فيديو: هل لكل فئة مُنشئ افتراضي C ++؟

فيديو: هل لكل فئة مُنشئ افتراضي C ++؟
فيديو: C++ vs C# - An Experienced Programmer Provides a Comparison 2024, أبريل
Anonim

المنشئات الافتراضية ( C ++ فقط)

أ المُنشئ الافتراضي هو أ البناء هذا سواء لديها لا توجد معلمات ، أو إذا كان لديها العوامل، الكل المعلمات لديك الافتراضي القيم. إذا لم يكن هناك تعريف من قبل المستخدم البناء موجود ل صف دراسي ألف وواحد يكون مطلوب ، يعلن المترجم ضمنيًا أ إفتراضي بدون معلمات البناء أ:: أ ().

وبالمثل ، هل تحتاج إلى مُنشئ افتراضي C ++؟

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

تعرف أيضًا ، هل يمكن للفصل ألا يحتوي على مُنشئ C ++؟ إذا كان لديك لا يوجد صانعين للفصل , سوف C ++ إنشاء افتراضي عام تلقائيًا البناء لك. هذا يسمى في بعض الأحيان ضمني البناء (أو تم إنشاؤه ضمنيًا البناء ).

قد يتساءل المرء أيضًا ، هل لكل فئة مُنشئ افتراضي؟

نعم كل الطبقات التي أنشأناها في جافا المُنشئ الافتراضي بدون معلمات. ولكن بمجرد أن نقوم بإنشاء معلمات البناء الذي - التي الحصول على المُنشئ الافتراضي إزالة.

كيف تستدعي المُنشئ الافتراضي في C ++؟

البناء له نفس اسم الفئة نفسها. المنشئون ليس لديك نوع العودة. أ البناء يتم استدعاؤه تلقائيًا عند إنشاء كائن. إذا لم نحدد ملف البناء , C ++ المترجم يولد ملف المُنشئ الافتراضي بالنسبة لنا (لا تتوقع أي معلمات ولها جسم فارغ).