Acceso a la herencia de C++


Especificadores de acceso

En el capítulo Especificadores de acceso , aprendió que hay tres especificadores disponibles en C++. Hasta ahora, solo hemos usado public(los miembros de una clase son accesibles desde fuera de la clase) y private(solo se puede acceder a los miembros dentro de la clase). El tercer especificador, protected, es similar a private, pero también se puede acceder a él en la clase heredada :

Ejemplo

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