Да, на то есть веская причина: у вас гораздо больше шансов получить правильную программу при использовании последней формы.
Проблема в том, что первая форма (указатель) представляет собой C
ism,C++
* * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * *]] * * * * * * 5 * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * *1006* * * * * * * * * * * *1006* * * * * * * * * * *, * *1006* *, * * * * *, * * * * *, * * * * *, * * * * * B *, и *.1010 * теперь вы управляете жизненным циклом вашего объекта явно (но не можете его забыть)
вы можете хранить свой объект в контейнере с полиморфизмом вы не забиваете стек и, таким образом, имеетеменьший риск столкновения с переполнением стека