Accès à l'héritage C++


Spécificateurs d'accès

Vous avez appris dans le chapitre sur les spécificateurs d' accès qu'il existe trois spécificateurs disponibles en C++. Jusqu'à présent, nous n'avons utilisé que public(les membres d'une classe sont accessibles depuis l'extérieur de la classe) et private(les membres ne sont accessibles qu'à l'intérieur de la classe). Le troisième spécificateur, protected, est similaire à private, mais il est également accessible dans la classe héritée :

Exemple

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