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

Задачи на ООП в Rust. Часть 5

В Rust нет наследования. Используйте композицию: struct Employee { user: User, salary: u32 }.

Дан struct User:

struct User { name: String, age: u32 }

Сделайте Employee с полем user: User и salary: u32.

Делегируйте метод name(&self) из Employee к self.user.

Дан код:

struct User { age: u32 } impl User { fn set_age(&mut self, age: u32) { if age <= 120 { self.age = age; } } }

Сделайте Employee, который вызывает self.user.set_age(age).

Дан User с name/surname:

struct User { name: String, surname: String }

Сделайте Employee::full_name(&self) -> String через поля user.

Сравните композицию и наследование — преимущества в Rust.

Сделайте метод promote(&mut self, bonus: u32) для Employee.

Сделайте функцию, принимающую &User и работающую и с User, и с Employee через общий trait (preview).

Вложите struct Address внутрь User.

Создайте struct Company с Vec<Employee> и методами добавления сотрудника и подсчёта зарплатного фонда.

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