تطرقت الى البرمجة الكائنبة حرفا حرفا الا انه واجهني مستوى الحماية المحمي protected
فهل هو نفسه المستوى private
ممكن شرحه بالتفصيل مع الفرق بينه وبين private
شكرا مسبقا
تطرقت الى البرمجة الكائنبة حرفا حرفا الا انه واجهني مستوى الحماية المحمي protected
فهل هو نفسه المستوى private
ممكن شرحه بالتفصيل مع الفرق بينه وبين private
شكرا مسبقا
تم تعديل هذه المشاركة بواسطة 852147 في 3 يوليو 2008 في 17:52
الفرق في مستوى الوصول :
public : يمكن الوصول للمتغيرات او الدوال من داخل الصف , من الصفوف المشتقة , من اي مكان بالبرنامج .
Protected : يمكن الوصول للمتغيرات او الدوال من داخل الصف , من الصفوف المشتقة .
Private : يمكن الوصول للمتغيرات او الدوال من داخل الصف .

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
شكرا جزيلا ولكن ممكن الشرح أكثر
خاصة private و protected
عذرا اذا كنت ثقيل الظل
إليك هذا المثال :
class A
{
public:
A(int ,int ,int );
void Print();
int x;
private:
int y;
protected:
int z;
};
A::A(int a,int b,int c)
{x=a;y=b;z=c;}
void A::Print()
{cout<<"X= "<<x<<"\n Y= "<<y<<"\n Z= "<<z<<endl;}
class B:public A
{
public:
B(int,int,int);
void Sum();
};
B::B(int a,int b,int c):A(a,b,c){}
void B::Sum()
{
cout<<x+z<<endl;
// cout<<x+y<<endl; Error
}
main()
{
A a(1,2,3);
cout<<a.x<<endl;
// cout<<a.y<<endl; Error
// cout<<a.z<<endl; Error
a.Print();
/////////////////////////////////////////////////////
B b(1,5,3);
b.Sum();
return 0;
}اولا : اذا كانت الدالة او المتغير Public او private او Protected جميعها تستيطع الوصول لها من داخل الصف ( Class)
على سبيل المثال الدالة Print استطاعت ان تتعامل مع المتغير x وهو public والمتغير y وهو Private والمتغير z وهو protected .
ثانيا: اذا كانت الدالة او المتغير Public او Protected فقط تستطيع الوصول لها من خلال الصفوف المشتقة اما Private فلا .
على سبيل المثال :
داخل الصف B المشتق من الصف A استطاعت الدالة Sum ان تتعامل مع المتغير X وهو Public والمتغير Z وهو Protected ولكن اذا حاولت ان تتعامل مع المتغير y والذي هو Private فسيحدث خطأ .
ثالثا : اذا كانت الدالة او المتغير Public فقط تستطيع الوصول لها داخل اي مكان في البرنامج اما Private او Protected فلا .
على سبيل المثال :
داخل الدالة Main استطعنا ان نطبع قيمة المتغير x وهو Public اما y وهو Private اوZ وهو Protected فلن تستطيع التعامل معها .
ايضا استطعنا ان نستعدي الدوال Sum و Print وهي جميعها Public .
اذا الخلاصة :
Public : تستطيع الوصول للمتغيرات او الدوال من داخل الصف او من خلال الصفوف المشتقة او من اي مكان بالبرنامج.
Protected: تستطيع الوصول للمتغيرات او الدوال من داخل الصف او من خلال الصفوف المشتقة فقط.
Private: تستطيع الوصول للمتغيرات او الدوال من داخل الصف فقط .
تحياتي .
تم تعديل هذه المشاركة بواسطة time1 في 3 يوليو 2008 في 18:49

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
تعرف أن الفئات في c++ يمكن أن تشتق من فئات أخري سابقة لها
بالنسبة ل Public فهي كلمة مفتاحية تشير إلي أن المتغير أو الوظيفة التي تعرفها سوف تكون متاحة لجميع الأجزاء الأخري في البرنامج
أما private فهي تعني أن المتغير أو الوظيفة التي تعرفها لن تكون متاحة سوي داخل الفئة التي تعرفها فيها وفقط ، وإذا اشتققت فئة أخري من هذه الفئة الأم فحتي هذه لن تستطيع الوصول لهذا المتغير ال private
أما protected وهي كلمة بالمناسبة ليس لها أي علاقة بالحماية أو الأمن ، هي مجرد كلمة تعني أن المتغير أو الوظيفة التي تعرفها غير متاحة سوي داخل الفئة التي تعرفها فيها فقط وتكون متاحة أيضًا للفئات المشتقة من هذه الفئة الأم
أولا شكرا جزيلا على توضيح الفرق
ولكن لى تعقيب بسيط وهو : ياريت لو سمحت (أو لأى شخص يريد التعامل فى البرمجة) يكون الشرح على الأقل بمصطلحات اللغة الإنجليزية المتداولة فى البرمجة
مثال بدلا من ان نقول (عضو) نقول (member)
أو بدلا من قول (الكائنات) نقول (objects)
وقس على هذا
حتى لا نتوه وسط الكلام العربى اللى يبرجل ويصيب الشرح بالركاكة وضعف وصعوبة توصيل المعلومة
انا حبيت أنبه على الموضوع ده للفت الانتباه فقط
وشكـــــــــــــــــــــــــــرا جزيـــــــــــــــــــــــــــــــــــــلا
لا إله إلا الله وسبحان الله وبحمده عدد خلقه وزنة عرشه ومداد كلماته وعدد أوراق الشجر وذرات المطر
Our life is a program .. We make Syntax errors
Allah protect us from run time errors
شكرا لكم على المرور
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…