No it's not better because if you have several constructors, the initial state of the object does not have to be defined several time, one time globally and one time in the constructor. In the case of complex object, creating a temporary unused object is not interesting. The constructor is the place where you should initialize object states. The current way to do stuff is the more efficient way for C++.