Use initializer lists.
Consider the following class:
Vehicle(const std::string &name) // Don't do this!
mName = name;
std: : string mName;
Because member variables are constructed before the body of the constructor is
invoked, this code calls the constructor for the string mName, and then calls the
= operator to copy in the object's name. What's particularly bad about this example
is that the default constructor for string may well allocate memory