Нет. Кусок кода не создает объект с именем «name» и типом «ClassName».
Он создает и инициализирует объект с именем «name» и типом «указатель на ClassName». Переменная «name» будет содержать адрес полностью сконструированного объекта типа «ClassName». Это называется «построение объекта динамического c срока хранения».
Зачем создавать объекты динамического c срока хранения? Ответ заключается в том, что другие три типа продолжительности хранения (automati c, stati c, thread-local) не подходят и являются лучшим решением для проблемы, которую вы пытаетесь решить.