LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

я чуть сократил (ненужные изменения имени) и добавил печать и профессию рабочему https://play.rust-lang.org/?gist=292bdef40f50f8016d34f21088312d97&version...

то приведенный выше трюк с перегрузкой Deref вполне жизнеспособен.

хм? возможно после сильной доработки, т.к. перегрузка Deref всегда возвращает указатель на Human-а

как сделать так, чтобы у обоих — и Human, и Worker была функция say, и у человека она печатала

println!(«I am {}», human.name );

а у рабочего че-то типа

println!(«I am {} and I am {}», human.name, profession );

похоже там еще придется делать таблицу виртуальных функций, не?

Исходная версия www_linux_org_ru, :

я чуть сократил (ненужные изменения имени) и добавил печать и профессию рабочему https://play.rust-lang.org/?gist=292bdef40f50f8016d34f21088312d97&version...

то приведенный выше трюк с перегрузкой Deref вполне жизнеспособен.

хм? возможно после сильной доработки, т.к перегрузка Deref всегда возвращает указатель на Human-а

как сделать так, чтобы у обоих — и Human, и Worker была функция say, и у человека она печатала

println!(«I am {}», human.name );

а у рабочего че-то типа

println!(«I am {} and I am {}», human.name, profession );

похоже там еще придется делать таблицу виртуальных функций, не?