В этом фрагменте кода я пытаюсь получить доступ к защищенным членам базового класса из производного класса. Но в производном классе он говорит, что «не удается получить доступ к защищенному члену»Доступ к Защищенным членам по наследованию
#include<iostream>
using namespace std;
class Employee
{
public:
Employee(char Name, int perHrPay) { Name_user=Name, PerHr=perHrPay;};
Employee() {}
~Employee() {}
char getName() const;
float getPayPerHr() const;
float paymentIs() const ;
protected:
char Name_user;
float PerHr;
};
class Manager : public Employee
{
public:
Manager(){}
~Manager(){}
float paymentIs() const ;
};
char Employee::getName() const { return Name_user; }
float Employee::getPayPerHr() const { return PerHr; }
float Employee::paymentIs() const { return PerHr*3; }
int main()
{
Employee emp('S',94);
Manager man;
cout << " The name is " << emp.getName() << endl;
cout << "The per hr pay is " << emp.getPayPerHr() << endl;
cout << "The payment is " << emp.paymentIs() << endl;
cout << "Name inherited" << man.Name_user << endl;
cout << "Per hr pay is " << man.PerHr << endl;
return 1;
}
В этом коде человек не в состоянии получить доступ к защищенному члену Name_user в классе Employee. Я не понимаю, почему унаследованный класс не может получить к нему доступ. Пожалуйста, помогите
Сделать деструктор работника 'virtual', а также' float paymentIs() ' – AndyG
Защищенные члены недоступны из внешней области. Также как частный. – LogicStuff
'main()' должен возвращать 0 после успешного завершения. Вы можете просто оставить его для C++ 11 (и далее). – jxh