Думайте об этом так, вы можете назначать и создавать объекты в C ++. Я немного перефразирую, так что отвяжите меня от слабых языковых адвокатов. :)
Все объекты нуждаются в строительстве, но не каждый нуждается в назначении. C ++ позволяет нам удваивать обязанности и передавать значения через конструктор. В этом случае вы создаете и назначаете за один шаг, как другие предлагают вам сделать.
Если вы просто сконструируете объект, вы получите значение (я) по умолчанию для вашего объекта, когда вызывается c-tor по умолчанию, за которым следуют значения (значения) после присвоения.