Используйте в классах инициализацию по-умолчанию

Не используйте, по-возможности, списки инициализации в конструкторах, а предпочитайте инициализацию членов классов по умолчанию (доступно в C++11) .

Это решает проблему неинициализированных данных, когда в одном конструкторе изменяют код, а в других забывают. Кроме того это позволяет сократить число конструкторов.

Неправильно:

class MyClass {
public:
    MyClass() : superVar_(-1) {}
    // ...
private:
    int superVar_;
};

Правильно:

class CMyClass {
public:
    // ...
private:
    int superVar_{ -1 };
};