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

Вызов метода базового класса в C++

После замены тело метода родителя само не выполняется. Его можно вызвать из потомка.

Внутри метода потомка пишут имя базы, два двоеточия и имя метода, например User::setAge.

Запишем верхнюю границу возраста в Employee и передадим остальное базе:

#include <iostream> class User { public: virtual void setAge(int age) { if (age >= 0) { this->age = age; } else { std::cout << "need age more 0\n"; } } int getAge() { return age; } protected: int age = 0; }; class Employee : public User { public: void setAge(int age) override { if (age <= 120) { User::setAge(age); } else { std::cout << "need age less 120\n"; } } };

Создадим объект класса Employee и запишем ему возраст:

int main() { Employee employee; employee.setAge(30); std::cout << employee.getAge() << "\n"; return 0; }

Дан следующий код:

class User { public: virtual void setAge(int age) { if (age >= 0) { this->age = age; } } protected: int age = 0; }; class Employee : public User { public: void setAge(int age) override { if (age <= 120) { if (age >= 0) { this->age = age; } } } };

Упростите сеттер возраста в Employee, используя вызов метода базового класса User::setAge для проверки неотрицательного возраста.

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