When I need to write explicitly "initializer list" in constructors?

I don't understand when I need to write myself the "initializer list" in constructors? I reed about it in some tutorials but it's still not clear how to work with this.

(I understood that the fields of class must be initialized before the execution of the function body. But some details are missing and it's not clear when can I need to write the "initializer list" myself, and when I can to trust the "hidden initializer list" that executed by the default constructor of any field)