other than being forced to use an initializer list for constants and references, It also useful because with it you avoid default constructing member objects before the constructor is entered and then immediately assigning it, which can be inefficient if the member objects are expensive to construct