في C++، Friend Function تُسمح لدالة بالوصول إلى البيانات الخاصة (private members) في الكلاس الآخر، وهي وظيفة تُعطى صلاحية خاصة للدوال للوصول إلى الأعضاء الخاصة بكلاس آخر. تُعرَّف Friend Function عبر استخدام الكلمة الرئيسية "friend" في داخل الكلاس.
باستخدام Friend Function، يمكن للدوال الخارجية (التي تم تعريفها خارج الكلاس) الوصول إلى البيانات الخاصة والمحمية في الكلاس. هذا يزيد من مرونة التصميم ويسمح بتبادل البيانات بين الكلاسات دون الحاجة لجعل جميع الأعضاء عامة أو استخدام الدوال العامة للوصول إليها.
فيما يخص التوريث (Inheritance) في C++، يُسمح لك بإنشاء كلاس جديد (مشتق) باستخدام خصائص (بيانات ودوال) من كلاس آخر (الأساسي). يمكن أن تكون العلاقة بين الكلاسات بطرق مختلفة، مثل العام-الخاص (public inheritance) أو المحمي (protected inheritance) أو الخاص-الخاص (private inheritance)، حيث تحدد هذه العلاقة كيفية وصول الأعضاء الموروثة في الكلاس المشتق.
عند استخدام Friend Function مع التوريث (Inheritance)، يمكن للوظائف الصديقة (Friend Functions) أن توصل إلى البيانات الخاصة (private members) للكلاس الأساسي والكلاس المشتق أيضًا، مما يمنح مزيدًا من المرونة والسيطرة في تبادل البيانات بين الكلاسات.
تُستخدم الصداقة (Friendship) مع التوريث (Inheritance) في حالات معينة حيث تحتاج الكلاسات المشتقة إلى الوصول إلى البيانات الخاصة في الكلاس الأساسي بدقة دون جعل هذه البيانات عامة أو محمية.