
رسم بياني للمقارنة
أساس للمقارنة | نشر | محمي |
---|---|---|
وراثة الملكية للفئة المشتقة | لا يمكن للفئة المشتقة الوصول إلى أعضاء الفئة الأساسية الخاصة. | يمكن للفصل المشتق الوصول إلى الأعضاء المحميين من الفئة الأساسية. |
إمكانية الوصول | لا يمكن الوصول إلى أعضاء القطاع الخاص خارج نطاق الفصل الدراسي. | لا يمكن الوصول إلى أعضاء الفئة المحمية من النطاق الدراسي باستثناء الفئة المشتقة على الفور. |
يمكن الوصول إليها من الطبقة الخاصة | نعم فعلا | نعم فعلا |
يمكن الوصول إليها من الطبقة المشتقة | لا | نعم فعلا |
يمكن الوصول إليها من الخارج | لا | لا |
تعريف القطاع الخاص
يمكن استرجاع أعضاء الفئة المعلنين كخواص خاصة داخل الفصل فقط. وبعبارة أخرى ، لا يمكن الوصول إلى الأعضاء المعلنين في القسم الخاص من الفصل إلا عن طريق وظيفة الصديق ووظيفة العضو في الفصل. لا يمكن الحصول على الأعضاء الخاصين للفئة المشتقة مباشرة ولا يمكن الوصول إليها خارج نطاق الفصل الدراسي.
يُظهر برنامج C ++ مفهوم محددات الوصول الخاص.
# include using namespace std؛ class A {private: int i؛ public: void get () {cout <> i؛ }}؛ class B: public A {public: void show () {i ++؛ cout << "\ n رقمك الذي تم إدخاله بعد incrementcpp"> # include باستخدام مساحة الاسم std؛ الثدييات الجماعية {public: void mammalMethod (void) {cout << "إنه يأتي تحت فئة الثدييات." <في البرنامج المذكور أعلاه ، يتم إنشاء كائن واحد من فئة الطفل بالاسم "ob" ويمكن الوصول إلى وظيفة العضو للفئة الأم من خلال استدعاء طريقة class child "marine_mammalMethod". على الرغم من أنه لا يمكن الوصول إلى الطريقة الأصل مباشرة باستخدام كائن "ob".
تعريف المحمية
لا يمكن الوصول إلى أعضاء الفئة المعلنين كحماية في الفصل إلا من خلال وظيفة العضو ودالة صديق للفصل الدراسي. لا يمكن الوصول إلى هؤلاء الأعضاء المحميين خارج نطاق الفصل الدراسي باستثناء فئة فرعية (مشتقة مباشرة منه). يخدم الغرض المقيدة في الميراث ويرث الخصائص بطريقة محدودة.
يوضح برنامج C ++ الموضح أدناه مفهوم محددات الوصول المحمي.
# include using namespace std؛ account class1 {protected: int x، y؛ // access to public class المشتقة: void set (int a، int b) {x = a؛ ذ = ب. } void show () {cout <في المثال أعلاه ، ترث الفئة الفرعية خصائص الطبقة الأساسية لأنه يتم التصريح عن أعضاء البيانات على أنها عامة أو محمية. لن يكون ممكنا إذا تم الإعلان عن x و y على أنهما خاصان في الطبقة الأساسية.
الاختلافات الرئيسية بين الخاصة والمحمية في C ++
- يمكن استخدام الكلمة الرئيسية المحمية لبناء أعضاء الفئة الخاصة بالفصول الدراسية الخاصة بهم ولكن يمكن أن يتم توريثها واستخدامها بواسطة الفئة المشتقة. على العكس ، هذا غير ممكن أثناء استخدامك الخاص ، لأن الأعضاء الخاصين لا يمكن توريثهم مباشرة للفئة المشتقة.
- عندما يتم توريث الفئة الأساسية باستخدام محدد الوصول الخاص ، فإنها تجعل جميع الأفراد العامين والمحميين من الطبقة الأساسية ، أعضاء القطاع الخاص من الطبقة المشتقة. مقابل هذا ، ليس هذا هو الحال في محددات الوصول المحمي.
استنتاج
خاصة ومحمية هي محددات الوصول التي يتم استخدامها لتعيين رؤية الطبقة وأعضائها بشكل مختلف. ومع ذلك ، محمية أكثر مرونة من القطاع الخاص.