Acesso à herança C++


Especificadores de acesso

Você aprendeu no capítulo Especificadores de Acesso que existem três especificadores disponíveis em C++. Até agora, usamos apenas public(os membros de uma classe são acessíveis de fora da classe) e private(os membros só podem ser acessados ​​dentro da classe). O terceiro especificador, protected, é semelhante a private, mas também pode ser acessado na classe herdada :

Exemplo

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