سؤال

إذا نكتب دالة الظاهري فإنه يضيف vtable في كائن من تلك الفئة. هل صحيح للالمدمر الظاهري أيضا؟ يستخدم vtable لتنفيذ virtualness من المدمر

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

المحلول

نعم. هناك حاجة إلى بعض المعلومات للسماح للالمدمر الصحيح ليتم استدعاؤها عند حذف الكائن من خلال مؤشر الفئة الأساسية. سواء كان ذلك المعلومات هي مؤشر عدد صحيح صغير أو مؤشر لا يهم (على الرغم من الربط الديناميكي ربما يعني أنه مؤشر). وبطبيعة الحال، يجب أن المعلومات لتكون متاخمة ل(في الداخل) وأشار إلى الاعتراض.

وإضافة أسلوب ظاهري من أي نوع، بما في ذلك المدمر، إلى الدرجة التي كان لا شيء من قبل، سوف تزيد sizeof (الطبقة).

نصائح أخرى

وأنا لا أعتقد أن مستوى C ++ يتطلب أي آلية معينة لإنتاج السلوك الصحيح، ولكن نعم، وهذا هو تطبيق نموذجي. وهناك فئة مع لا يقل عن 1 وظيفة افتراضية لديها جدول (الظاهرية) مؤشرات الدالة، والمدمر واحدة منها، إذا لم تميز الظاهري.

ونعم هو عليه. آسف ليس لدي إشارة نهائية لإجراء نسخ احتياطي تأكيدي. ولكن وإلا كيف سوف تحصل سلوك مختلفة عند استخدام فقط مؤشر إلى كائن؟

نعم. المدمر الظاهري هو مثل أي طريقة الظاهري الآخرين. سوف تحصل على إضافة إدخال Vtable.

ويتم التعامل معها مثل أي وظيفة العادية الأخرى، وسوف تضاف إلى vtable.

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