У вас есть это задом наперед.A()
создает объект типа A
.Как часть этого процесса, этот синтаксис вызывает конструктор A
, если он есть.В конце концов, вы можете сделать int(5)
, чтобы создать int
, но это не значит, что int
имеет конструктор (фактические конструкторы / деструкторы имеют только пользовательские типы).
Так что это не такна самом деле вы «вызываете конструктор, который создает объект»;вместо этого вы «создаете объект, который может включать вызов конструктора».