Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpIhPt 69 of 150 menu
◀ ▶

Доступ protected при наследовании в C++

Поле со словом protected видно в своем классе и в потомках. Снаружи класса к нему не обратиться.

Запишем защищенное поле name и обратимся к нему из метода Employee:

#include <string> class User { public: virtual void setName(std::string name) { this->name = name; } std::string getName() { return name; } protected: std::string name; }; class Employee : public User { public: void setName(std::string name) override { if (!name.empty()) { this->name = name; } } };

Создадим объект класса Employee и выведем его имя:

int main() { Employee employee; employee.setName("john"); // employee.name; // ошибка: name protected std::cout << employee.getName() << "\n"; return 0; }

Перепишите класс User так, чтобы поле name было protected, и исправьте setName в Employee, чтобы он писал в это поле напрямую.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить