История изменений
Исправление 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 );
похоже там еще придется делать таблицу виртуальных функций, не?