Ключевое слово override в C++
Потомок может заменить метод родителя методом с тем же именем.
Слово override после объявления фиксирует эту замену:
компилятор проверит, что в базе есть виртуальный метод
с тем же именем и теми же параметрами. Запишем сеттер
возраста в User и сузим диапазон в Employee:
class User {
public:
virtual void setAge(int age) {
if (age >= 0) {
this->age = age;
}
}
int getAge() {
return age;
}
protected:
int age = 0;
};
class Employee : public User {
public:
void setAge(int age) override {
if (age >= 18 && age <= 65) {
this->age = age;
}
}
};
Создадим объект класса Employee и выведем его возраст:
int main() {
Employee employee;
employee.setAge(25);
std::cout << employee.getAge() << "\n";
return 0;
}
В классе User сделайте
геттер и виртуальный сеттер возраста.
В классе Employee переопределите
сеттер возраста с override
и проверяйте диапазон от 18
до 65 лет.