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

Закрытые члены базы в C++

Приватное не наследуется. Так сохраняют границу класса: потомок не видит чужое private.

Потомок может работать с таким полем через публичный метод родителя. Обращение к приватному имени базы из потомка не компилируется.

Запишем пример с ошибкой в комментарии и рабочий вызов публичного метода:

#include <string> class User { public: void setName(std::string name) { this->name = name; } std::string getName() { return name; } private: std::string name; }; class Employee : public User { public: void tryDirect() { // this->name = "x"; // ошибка: name private в User } };

Создадим объект класса Employee и вызовем публичный метод:

int main() { Employee employee; employee.setName("john"); std::cout << employee.getName() << "\n"; return 0; }

Попробуйте в классе Employee вызвать приватный метод базового класса и убедитесь, что компилятор выдает ошибку.

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