الوحدة التاسعة:::::من الدروس

محتويات الوحدة
 
الأصناف الصديقة
مثال توضيحي
امثلة
 
 
 
 
 
 
 
وحدات اخرى
 
  الوحدة الأولى
  الوحدة الثانية
  الوحدة الثالثة
  الوحدة الرابعة
  الوحدة الخامسة
  الوحدة السادسة
  الوحدة السابعة
  الوحدة الثامنة
  الوحدة التاسعة
  الوحدة العاشرة
  الوحدة الحادية عشر
  الوحدة الثـانية عشر
  الوحدة الثالثة عشر
  الوحدة الرابعة عشر
 

 مواقع أخرى

 

الأخبار

 
  الجزيرة
  العربية

  BBC عربي

  CNN عربي

 

الصحف

 

  الحياة
  الوطن
  القدس العربي
  الشرق الأوسط

 

 الجامعات

 
  جامعة أم القرى
  جامعة الملك فهد

  جامعة الملك سعود

  جامعة الملك عبد العزيز  

 

الرياضة

 
  شبكة الزعيم
  منتديات مدريدي

 

 

 
 


الوحدة التاسعة

   
 الأصناف الصديقة 

Friend Classes

تعريف الصنف الصديق:-

هو عبارة عن صنف تستطيع كل دواله الأعضاء  أن تستخدم خصائص الصنف الآخر.

مثلاً:-

 ميزة  لها x هذا يعني أن كل الدوال الأعضاء في y  صديق لصنف آخر وهو  xإذا كان لدينا الصنف

   وليس العكس. yالوصول لخصائص الصنف

ملاحظة:-

  . friend  للإعلان عن الصنف الصديق نستخدم الكلمة المحجوزة

 
 
 

 أعلى

 

 

   
مثال توضيحي:-

 

class a

class b

{

friend class a;

""""

""""

""""

""""

};

class a

{

""""

""""

""""

""""

};

 

b    صديق لـ   a لاحظ أن  

ويمكن أن  يكتب بصورة أخري:- 

فقط صديق يمكن أن يكتب أولاً بكل تفاصيله بدلاً عن الإعلان a طالما

كما في  الحالة الأولى  ويكون ذلك كما يلي:-

class a

{

""""

""""

""""

""""

};

class b

{

friend class a;

""""

""""

""""

""""

};

 
 
 

 أعلى

 

 

   
 مثال:-

برنامج يقوم بإيجاد الوسط الحسابي لــn من الأعداد الصحيحة المدخلة من قبل المستخدم

#include<iostream.h>

#include<conio.h>

class mean;

class summation

{

private:

float n,x,sum;

public:

summation(  )

{

sum=0;

cout<<"enter n \n";

cin>>n;

for(int i=1;i<=n;i++)

{

cout<<"enter x"<<i<<"\n";

cin>>x;

sum+=x;

}

}

friend class mean;

};

class mean

{

private:

float s;

public:

mean(summation ss)

{

s=ss.sum/ss.n;

cout<<"mean ="<<s<<"\n";

}

};

main(  )

{

summation s;

mean m(s);

getch(  );

مثال آخر عن الأصناف الصديقة:- 

// friend class

#include <iostream.h>

#include <conio.h>

class csquare;

class crectangle

 {

   int width, height;

  public:

    int area (  )

      {

      return (width * height);

      }

    void convert (csquare a);

};

class csquare

 {

  private:

    int side;

  public:

    void set_side (int a)

      {

      side=a;

      }

    friend class crectangle;

};

void crectangle::convert (csquare a)

{

  width = a.side;

  height = a.side;

}

  main (  )

 {

  csquare sqr;

  crectangle rect;

  sqr.set_side(4);

  rect.convert(sqr);

  cout << rect.area(  );

  getch(  );

}

 
  << الوحدة السابقة

 أعلى

الوحدة التالية >>

 

                                                             

 
   
 

جميع الحقوق محفوظة © 2006