الوصول إلى وظائف الصديق المحددة داخل الفصل
عند العمل مع وظائف الأصدقاء، من الضروري فهم كيفية تعريفها والوصول إليها. نظرًا لأن وظائف الأصدقاء ليست أعضاءً في الفصل الدراسي، فقد يتطلب الوصول إليها خارج الفصل اعتبارات خاصة.
في مقتطف التعليمات البرمجية المقدم:
class A {
public:
friend void fun(A a){std::cout تم تعريف وظائف الصديق fun() و fun3() داخل الفصل ولكن لم يتم الإعلان عنها في النطاق العام. بينما يمكن الوصول إلى fun() مباشرة باستخدام البحث المعتمد على الوسيطة (ADL) بسبب الوسيطة من النوع A، لا يمكن الوصول إلى fun2() بدون إعلان في النطاق العام.
للوصول إلى fun2() بشكل صحيح ، يجب الإعلان عنها عالميًا بالإضافة إلى تعريفها كوظيفة صديق ضمن الفئة:
class A {
public:
friend void fun(A a){std::cout في هذا الإصدار المعدل، يمكن الوصول إلى fun2() خارج الفصل كوظيفة عادية.
ومع ذلك، يوصى بتحديد وظائف الأصدقاء بالطريقة المعتادة، خارج الفصل ولكن معلنة كأصدقاء:
class A {
friend void fun(A a);
friend void fun2();
friend void fun3();
};
void fun(A a) { std::cout يضمن هذا الأسلوب تعريف جميع وظائف الأصدقاء وإعلانها بشكل صحيح، مما يجعلها قابلة للوصول وقابلة للاستخدام على النحو المنشود.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3