سؤال

ما هو الفرق في الخطاف الأساسي وخطاف العضو في مكتبة Boost :: Interpary ومتى يكون من الأفضل استخدامه ثم الآخر؟

لقد قرأت وثائق التعزيز ، لكنها ليست كذلك.

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

المحلول

بقدر ما أستطيع أن أقول أنها مسألة أسلوب وتصميم موجه نحو الكائن. تتطفل الخطافات الأساسية على التسلسل الهرمي للميراث ، مما يستلزم وجود إضافي public فئة الوالدين وربما إجبار الميراث المتعدد على التصميم. يتيح استخدام السنانير الأعضاء للمبرمج معاملة كائن على أنه يحتوي على ملف has-a العلاقة مع حاوية ، بدلاً من is-a العلاقة مع عضوية الحاوية.

نصائح أخرى

IMHO إذا كان من المفترض أن يتم تضمين كائنك في حاوية واحدة فقط ، فإن الخطاف الأساسي يبدو أكثر كونفًا. خلاف ذلك (بالنسبة للحاويات المتعددة) ، توفر خطافات الأعضاء المتعددة حلًا أقل غموضًا (حيث يتم تجنب الميراث المتعدد)

http://www.boost.org/doc/libs/1_47_0/doc/html/intrusion/recursive.html"السنانير الأعضاء ليست مناسبة للهياكل العودية"

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