Member Initializers in C++
(Acknowledgements to https://www.modernescpp.com/index.php/c-core-guidelines-constructors/, by Rainer Grimm)
Initializing class members directly in the class body makes the writing of constructors a lot easier. Sometimes it makes it unnecessary, or redundant. Class X1 classically defines its members (before C++11) and X2 in a preferred way. A nice side effect is that the compiler automatically generates the constructor for X2.
class X1 { // BAD: doesn't use member initializers string s; int i; public: X1() : s{"default"}, i{1} { } // ... }; class X2 { string s = "default"; int i = 1; public: // use compiler-generated default constructor // ... };