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

كيف يمكنك الإعلان عن الهياكل/الفئات القالبية كأصدقاء في لغة C++؟

تم النشر بتاريخ 2024-11-19
تصفح:355

How Can You Declare Templated Structs/Classes as Friends in C  ?

الإعلان عن الهياكل/الفئات النموذجية كأصدقاء

في عالم لغة C ، يمكن للإعلان عن الهياكل أو الفئات النموذجية كأصدقاء أن يمثل حاجزًا متعلقًا ببناء الجملة. لتحقيق ذلك، فكر في الطريقة التالية:

قالب struct foo { القالب صديق الطبقة فو؛ خاص: // ... };
template 
struct foo
{
    template 
    friend class foo;

private:
    // ...
};
يبدو أن بناء الجملة هذا قد تم تجميعه بنجاح. ومع ذلك، فإنه يعلن أن جميع عمليات إنشاء نماذج foo كأصدقاء لبعضهم البعض، بغض النظر عن معلمة القالب التي يأخذونها. قد يتماشى هذا أو لا يتماشى مع حالة الاستخدام المقصودة.

إذا كنت بحاجة إلى قصر الصداقة على عمليات مثيلة محددة فقط، فيمكنك تحقيق ذلك باستخدام بناء الجملة هذا:

قالب struct foo { القالب هيكل الصديق foo; خاص: // ... };
template 
struct foo
{
    template 
    friend class foo;

private:
    // ...
};
لسوء الحظ، لا تسمح هذه الصيغة بإعلان عام يتضمن جميع عمليات إنشاء مثيل foo الممكنة.

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3