محددات الوصول C ++
محددات الوصول
الآن ، أنت على دراية public
بالكلمة الرئيسية التي تظهر في جميع أمثلة فصولنا الدراسية:
مثال
class MyClass { // The class
public: // Access specifier
// class members goes here
};
public
الكلمة الأساسية هي محدد الوصول.
تحدد محددات الوصول كيفية الوصول إلى أعضاء (السمات والطرق) للفئة. في المثال أعلاه ، الأعضاء public
- مما يعني أنه يمكن الوصول إليهم وتعديلهم من خارج الكود.
ومع ذلك ، ماذا لو أردنا أن يكون الأعضاء خاصين ومخفيين عن العالم الخارجي؟
في C ++ ، هناك ثلاثة محددات وصول:
public
- يمكن الوصول إلى الأعضاء من خارج الفصلprivate
- لا يمكن الوصول إلى الأعضاء (أو عرضها) من خارج الفصلprotected
- لا يمكن الوصول إلى الأعضاء من خارج الفصل ، ومع ذلك ، يمكن الوصول إليهم في الفئات الموروثة. سوف تتعلم المزيد عن الميراث لاحقًا.
في المثال التالي ، نوضح الاختلافات بين الأعضاء public
والأعضاء private
:
مثال
class
MyClass {
public: // Public access
specifier
int x; // Public attribute
private: // Private access specifier
int y; // Private attribute
};
int main() {
MyClass
myObj;
myObj.x = 25; // Allowed (public)
myObj.y = 50; //
Not allowed (private)
return 0;
}
إذا حاولت الوصول إلى عضو خاص ، سيحدث خطأ:
error: y is private
ملاحظة: من الممكن الوصول إلى الأعضاء الخاصين في الفصل باستخدام طريقة عامة داخل نفس الفصل. راجع الفصل التالي ( التغليف ) حول كيفية القيام بذلك.
نصيحة: يُعد إعلان سمات صفك على أنها خاصة (بقدر ما تستطيع) ممارسة جيدة. سيؤدي ذلك إلى تقليل احتمالية قيامك (أو غيرك) بإفساد الكود. هذا أيضًا هو المكون الرئيسي لمفهوم التغليف ، والذي ستتعلم المزيد عنه في الفصل التالي.
ملاحظة: بشكل افتراضي ، يكون جميع أعضاء الفصل الدراسي في private
حالة عدم تحديد محدد وصول:
مثال
class
MyClass {
int x; // Private attribute
int y; // Private attribute
};