Why are some fields initialized using initializer lists but others done in the body?