في عالم لغة C ، يمكن للإعلان عن الهياكل أو الفئات النموذجية كأصدقاء أن يمثل حاجزًا متعلقًا ببناء الجملة. لتحقيق ذلك، فكر في الطريقة التالية:
قالبtemplateيبدو أن بناء الجملة هذا قد تم تجميعه بنجاح. ومع ذلك، فإنه يعلن أن جميع عمليات إنشاء نماذج foo كأصدقاء لبعضهم البعض، بغض النظر عن معلمة القالب التي يأخذونها. قد يتماشى هذا أو لا يتماشى مع حالة الاستخدام المقصودة.إذا كنت بحاجة إلى قصر الصداقة على عمليات مثيلة محددة فقط، فيمكنك تحقيق ذلك باستخدام بناء الجملة هذا:قالبstruct foo { template friend class foo; private: // ... };
templateلسوء الحظ، لا تسمح هذه الصيغة بإعلان عام يتضمن جميع عمليات إنشاء مثيل foo الممكنة.struct foo { template friend class foo; private: // ... };
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3