Accesso all'ereditarietà C++


Identificatori di accesso

Hai appreso dal capitolo Specifici di accesso che ci sono tre specificatori disponibili in C++. Finora abbiamo usato solo public(i membri di una classe sono accessibili dall'esterno della classe) e private(i membri possono essere accessibili solo all'interno della classe). Il terzo specificatore, protected, è simile a private, ma è possibile accedervi anche nella classe ereditata :

Esempio

// 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;
}