مشخصه های دسترسی در ارث بری (Access Specifiers)
اینجا درباره «مشخصه دسترسی (Access Specifier)» در ارث بری حرف می زنیم. مشخصه دسترسی یعنی قانون دیدن اعضا. در کلاس های ارث بری، رفتار protected مهم می شود. چون شبیه private است؛ اما در فرزند دیده می شود. مثل کارنامه مخفی که فقط دانش آموز و معلم می بینند.
مشخصه های دسترسی در ارث بری چطور کار می کنند؟
public یعنی از بیرون هم قابل دسترس است. private یعنی فقط خود کلاس می بیند. اما protected یعنی کلاس و فرزندش می بینند. بنابراین در ارث بری، protected برای اشتراک امن مفید است.
نمونه کد با protected
// Base class
class Employee {
protected:
int salary;
};
// Derived class
class Programmer: public Employee {
public:
int bonus;
void setSalary(int s) {
salary = s;
}
int getSalary() {
return salary;
}
};
int main() {
Programmer myObj;
myObj.setSalary(50000);
myObj.bonus = 15000;
cout << "Salary: " << myObj.getSalary() << "\n";
cout << "Bonus: " << myObj.bonus << "\n";
return 0;
}
نکته: عضو salary از بیرون قابل دسترس نیست. اما در Programmer قابل استفاده است.
سه گام عملی برای ارث بری امن
- اعضا را پیش فرض
privateبگیر. - آنچه فرزند لازم دارد را
protectedکن. - برای بیرون، متد
getوsetبساز.
هشدار: هرچه کمتر عمومی کنی، باگ و دستکاری کمتر می شود. اول ایمن، بعد راحت.
ادامه مطالعه و مسیر
برای پایه ها، صفحه مشخصه های دسترسی را ببین. همچنین مقاله ارث بری و ارث بری چندگانه مفیدند. این صفحه مشخصه های دسترسی در ارث بری راهنمای متمرکز است.
جمع بندی سریع
publicاز همه جا دیده می شود.privateفقط در همان کلاس است.protectedدر کلاس و فرزند دیده می شود.- برای بیرون،
get/setبده.