การเข้าถึงมรดก C++
ตัวระบุการเข้าถึง
คุณได้เรียนรู้จาก บท Access Specifiersว่ามีตัวระบุสามตัวใน C++ จนถึงขณะนี้ เราเพิ่งใช้public
(สมาชิกของชั้นเรียนสามารถเข้าถึงได้จากภายนอกชั้นเรียน) และprivate
(สมาชิกสามารถเข้าถึงได้ภายในชั้นเรียนเท่านั้น) ตัวระบุที่สาม, protected
, คล้ายกับ
private
แต่สามารถเข้าถึงได้ในคลาสที่
สืบทอดมา :
ตัวอย่าง
// Base class
class
Employee {
protected: // Protected access specifier
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;
}