История изменений
Исправление alysnix, (текущая версия) :
Как видишь в структуру ничего не вшито.
да все там вшито. не совсем понимаю запись на русте, но ты явно вызывал динамические методы у обьекта, тип которого известен при компиляции. тогда будет вызван метод статически. все ооп языки это делают ради оптимизации.
let c = C(AtomData::new("C", "C_GUID"));
let cc = CC(C(AtomData::new("CC", "CC_GUID")));
вот тут с и сс имеют какие типы? вот их виртуальные методы и будут вызваны напрямую, даже если они виртуальные. раз ты строго указал(ну или вывел) тип переменной тут, и ни на что другого типа она не может ссылаться - значит можно диспатчить статически.
Исходная версия alysnix, :
Как видишь в структуру ничего не вшито.
да все там вшито. не совсем понимаю запись на русте, но ты явно вызывал динамические методы у обьекта, тип которого известен при компиляции. тогда будет вызван метод статически. все ооп языки это делают ради оптимизации.