الفرق بين وظيفة الأصدقاء وفئة الأصدقاء

مؤلف: Laura McKinney
تاريخ الخلق: 1 أبريل 2021
تاريخ التحديث: 5 قد 2024
Anonim
5 علامات خفية تكشف لك صديق المصلحة
فيديو: 5 علامات خفية تكشف لك صديق المصلحة

المحتوى


تعتبر وظيفة Friend و Friend friend من التقنيات المستخدمة للوصول إلى الأعضاء الخاصين في الفصل باستخدام كلمة أساسية للصديق. الفرق الشائع بين وظيفة الأصدقاء وفئة الأصدقاء هو أنه عند استخدام وظيفة الأصدقاء ، يمكن الوصول إلى أعضاء الفصل الخاص ولكن في فئة الأصدقاء ، يتم الوصول فقط إلى أسماء فئة الأصدقاء وليس الأعضاء الخاصين في الفصل.

ال ميزة صديق ما إذا كانت تستخدم من قبل وظيفة أو فئة يمكن أن تنتج تأثير سلبي على الإطار وجوه المنحى لأنه يضعف التغليف وهو ضد وجوه المنحى نموذج. هذا هو السبب في أن ميزة الصديق يجب أن تستخدم بحكمة وإلا يمكن استراحة ال إخفاء البيانات من الكود.

ميزة الصديق هذه ليست كذلك تبادلي و لا متعد. X صديق لـ Y ولا يستنتج أن Y صديق أيضًا لـ X. إذا كان X صديقًا لـ Y و Y صديقًا لـ Z ، لا يدل على أن X صديق لـ Z.

    1. رسم بياني للمقارنة
    2. فريف
    3. الاختلافات الرئيسية
    4. استنتاج

رسم بياني للمقارنة

أساس للمقارنةوظيفة صديقفئة الأصدقاء
الأساسيةإنها وظيفة تستخدم مع كلمة رئيسية صديقة لمنح وظيفة غير عضو وصولًا إلى الأعضاء الخاصين في الفصل.إنها فئة تستخدم مع كلمة رئيسية صديقة للوصول إلى الأعضاء الخاصين في فصل آخر.
إعلان إلى الأماملابد من استخدامه.ليس إلزاميا.
استعماليمكن استخدام وظيفة الأصدقاء في بعض حالات التحميل الزائد للمشغل.يمكن استخدام فئة الأصدقاء عند إنشاء فصل دراسي أعلى فصل آخر.


تعريف وظيفة الصديق

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

لا يتم استدعاء وظيفة الأصدقاء بكائن استدعاء الفئة. أمثلة على وظيفة الأصدقاء هي: وظيفة عالمية ، وظيفة عضو في فئة ، قالب وظيفة يمكن أن تكون وظيفة صديق. دعونا نفهم ذلك بمساعدة مثال.

#تضمن استخدام اسم للمحطة؛ بيانات الدرجة الأولى {int؛ عام: أولاً (int i): البيانات (i) {} عرض الفراغ الصديق (const أولاً & a)؛ }؛ void display (const first & a) {cout << "data =" <using namespace std؛ class First {// قم بتعريف صديق class class friend Second؛ عام: أولاً (): a (0) {} void () {cout << "النتيجة هي" << a << endl؛ } private: int a؛ }؛ class Second {public: void change (First & yclass، int x) {yclass.a = x؛ }} ؛ int main () أولاً obj1 ؛ الهدف الثاني obj1 ()؛ obj2.change (obj1، 5)؛ obj1 ()؛ // الإخراج النتيجة هي 0 والنتيجة هي 5

  1. وظيفة الأصدقاء هي وظيفة قادرة على الوصول إلى الأعضاء المحميين والفنيين في الفصل. على النقيض من ذلك ، فئة الأصدقاء هي فصل يساعد في الوصول إلى الأعضاء الخاصين في الفصل.
  2. يتم الإعلان عن وظيفة الصديق عن طريق تضمين النموذج الأولي الخاص به داخل الفصل ، وإلحاقها باستخدام صديق الكلمة المفتاحية. وبالمثل ، يتم تعريف فئة الأصدقاء باستخدام صديق الكلمة الأساسية.
  3. يتم استخدام التصريح الأمامي في حالة وظيفة الصديق مقابل ذلك ، ليس من الضروري استخدامه في صداقة الأصدقاء.

استنتاج

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