فرینڈ فنکشن اور فرینڈ کلاس میں فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 1 اپریل 2021
تازہ کاری کی تاریخ: 10 مئی 2024
Anonim
کلاس ممبر فنکشن اور فرینڈ فنکشن میں فرق | دوست فنکشن اور کلاس فنکشن
ویڈیو: کلاس ممبر فنکشن اور فرینڈ فنکشن میں فرق | دوست فنکشن اور کلاس فنکشن

مواد


فرینڈ فنکشن اور فرینڈ کلاس فرینڈ کی ورڈ کا استعمال کرکے کلاس کے نجی ممبروں تک رسائی حاصل کرنے کی تکنیک ہیں۔ فرینڈ فنکشن اور فرینڈ کلاس کے درمیان مشترکہ فرق یہ ہے کہ جب فرینڈ فنکشن استعمال ہوتا ہے تو نجی کلاس ممبروں تک رسائی حاصل کی جاسکتی ہے لیکن فرینڈ کلاس میں ، صرف فرینڈ کلاس کے ناموں تک رسائی حاصل کی جاتی ہے کلاس کے نجی ممبروں تک نہیں۔

دوست کی خصوصیت چاہے وہ فنکشن یا کلاس کے ذریعہ استعمال کردہ آبجیکٹ پر مبنی فریم ورک پر منفی اثر پیدا کرسکتا ہے کیونکہ یہ کمزور ہوتا ہے encapsulation جو خلاف ہے مقصد کا تعین کرنا نمونہ. یہی وجہ ہے کہ دوست خصوصیت کو دانشمندی کے ساتھ استعمال کرنا چاہئے بصورت دیگر یہ ممکن ہے توڑ ڈیٹا چھپا رہا ہے کوڈ کے.

یہ دوستی کی خصوصیت بھی نہیں ہے بدلنے والا اور نہ ہی ترسیلی. X Y کا دوست نہیں ہے اس بات کا انکشاف نہیں کرتا کہ Y بھی X کا دوست ہے۔ اگر X Y کا دوست ہے اور Y Z کا دوست ہے تو ، اس سے یہ بات نہیں لگی کہ X Z کا دوست ہے۔

    1. موازنہ چارٹ
    2. تعریف
    3. کلیدی اختلافات
    4. نتیجہ اخذ کرنا

موازنہ چارٹ

موازنہ کی بنیاددوست کامفرینڈ کلاس
بنیادییہ ایک فنکشن ہے جس میں کسی دوست کے مطلوبہ الفاظ کے ساتھ کلاس کے نجی ممبروں کو غیر ممبر فنکشن تک رسائی فراہم کی جاتی ہے۔یہ ایک کلاس ہے جس میں دوست کلیدی الفاظ کے ساتھ کسی اور کلاس کے نجی ممبروں تک رسائی حاصل ہوتی ہے۔
فارورڈ اعلانضرور استعمال کیا جانا چاہئے۔لازمی نہیں ہے۔
استعمال کریںآپریٹر اوورلوڈنگ کی کسی صورتحال میں دوستی کا فنکشن استعمال کیا جاسکتا ہے۔دوست کلاس استعمال کی جاسکتی ہے جب ایک کلاس دوسری کلاس کے اوپری حصے پر بنائی جاتی ہے۔


فرینڈ فنکشن کی تعریف

دوست تقریب غیر ممبر فنکشن تک رسائی حاصل کرنے کی اجازت دے کر کلاس کے نجی اور محفوظ ممبروں تک رسائی حاصل کرنے کے لئے استعمال ہوتا ہے۔ اس قسم کے فنکشن میں ، دوست کے مطلوبہ الفاظ کو اعلان کے وقت فنکشن کے نام سے پہلے استعمال کیا جاتا ہے۔ دوست کے فنکشن میں کچھ پابندی والی شرائط لاگو ہیں۔ پہلی شرط یہ ہے کہ فرینڈ فنکشن کسی بچے کی کلاس سے وراثت میں نہیں آتا ہے۔ دوسری شرط یہ ہے کہ اسٹوریج کلاس مخصوص کرنے والا دوست کے فنکشن میں موجود نہیں ہوسکتا ہے ، جس کا مطلب ہے کہ اسے مستحکم اور بیرونی قرار نہیں دیا جاسکتا۔

فرینڈ فنکشن کو کلاس کے چلانے والے آبجیکٹ کے ساتھ نہیں بلایا جاتا ہے۔ دوست فنکشن کی مثالیں یہ ہیں: ایک عالمی فنکشن ، کلاس کا ممبر فنکشن ، فنکشن ٹیمپلیٹ فرینڈ فنکشن ہوسکتا ہے۔ آئیے ہم اسے ایک مثال کی مدد سے سمجھتے ہیں۔

# شامل کریں نام کی جگہ ایس ٹی ڈی کا استعمال کرتے ہوئے؛ کلاس فرسٹ - ڈیٹا؛ عوامی: پہلا (INT): ڈیٹا (i)}} دوست کی باطل ڈسپلے (پہلے اور ایک)؛ }؛ باطل ڈسپلے (پہلی بار & a) out cout << "ڈیٹا =" <नेम اسپیس کا استعمال کرتے ہوئے ایس ٹی ڈی؛ کلاس فرسٹ {// دوست کلاس فرینڈ فرینڈ کلاس سیکنڈ سیکنڈ؛ عوامی: پہلا (): a (0) oid oid باطل () {cout << "نتیجہ" << a << endl؛ } نجی: int a؛ }؛ کلاس سیکنڈ {عوامی: کالعدم تبدیلی (اول اور یکلاس ، انٹ ایکس) {yclass.a = x؛ }}؛ int main () پہلا اعتراض 1؛ دوسرا اعتراض 2؛ اعتراض 1. ()؛ آبجیکٹ 2۔چینج (اعتراض 1، 5)؛ اعتراض 1. ()؛ // نتائج 0 ہے نتیجہ 5 ہے

  1. فرینڈ فنکشن ایک ایسا فنکشن ہوتا ہے جو کسی کلاس کے نجی اور محفوظ ممبروں تک رسائی حاصل کرنے کے قابل ہوتا ہے۔ اس کے برعکس ، ایک فرینڈ کلاس ایک کلاس ہے جو کلاس کے نجی ممبروں تک رسائی میں مدد کرتی ہے۔
  2. کسی دوست فنکشن کا اعلان کلاس کے اندر اس کا پروٹو ٹائپ شامل کرکے مطلوبہ الفاظ کے دوست کے ساتھ کرتا ہے۔ اسی طرح ، کلیدی لفظ دوست کا استعمال کرتے ہوئے دوست کلاس کی بھی تعریف کی جاتی ہے۔
  3. فارورڈ اعلامیہ فرینڈ فنکشن کی صورت میں استعمال ہوتا ہے اس کے برخلاف ، اسے دوست کلاس میں استعمال کرنا ضروری نہیں ہے۔

نتیجہ اخذ کرنا

دوست کی تقریب ضروری ہوتی ہے جب کسی فنکشن کو دو یا زیادہ آزاد طبقات ، داخلی ممبروں تک رسائی حاصل کرنے کی ضرورت ہو۔ دوسری طرف ، دوست کلاس کی ضرورت ہے جب ایک کلاس کو دوسرے کلاس کے ممبروں تک رسائی حاصل کرنا ہو۔ جب ایک سے زیادہ ممبران فنکشن کو اس فنکشن کا دوست بننے کی ضرورت ہوتی ہے تو ، اس صورت میں ، فرینڈ کلاس کا استعمال کرنا بہتر ہے۔