C++الدالة الصديقة
- مفهوم الدالة الصديقة في C++
- مثال شامل حول تعريف دالة صديقة في C++
مفهوم الدالة الصديقة في C++
الدالة الصديقة ( Friend Function ) عبارة عن دالة يمكنها الوصول لأي شيء يملكه الكائن حتى إن كان في الكلاس نوعه private أو protected.
شروط تعريف دالة صديقة
- أن يتم وضع شكل الدالة ( Prototype ) فقط بداخل الكلاس و محتواها ( Body ) خارج الكلاس.
- عند وضع شكل الدالة بداخل الكلاس يجب أن تذكر الكلمة friend و لكن لا يجب أن تذكرها عندما تكتب محتوى الدالة خارج الكلاس.
- في الكلاس لا يهم المكان الذي تقوم فيه بوضع شكل الدالة ( Prototype ), أي لا يهم إن جعلتها public أو private أو protected.
- محتوى الدالة ( Function Body ) يجب تعريفه خارج الكلاس.
- أن تكون الدالة تملك باراميتر عبارة عن كائن من الكلاس الذي تنوي الوصول لأي شيء موجود فيه.
مثال شامل حول تعريف دالة صديقة في C++
في المثال التالي, قمنا بتعريف كلاس إسمه Demo
يحتوي على 4 متغيرات كل واحد منهم له Modifier مختلف.
بعدها قمنا بتعريف دالة صديقة إسمها printValues
عند استدعاءها نمرر لها كائن من الكلاس Demo
فتقوم بطباعة قيمه بشكل مرتب.
في الأخير قمنا بإنشاء كائن من Demo
و إعطاؤه قيم, و من ثم إستدعاء الدالة printValues()
منه حتى تقوم بطباعة قيمه.
مثال
سنحصل على النتيجة التالية عند التشغيل.