コンストラクタでは、代入よりも初期化を使おう 12項
これよりも
Hoge::Hoge(const string& initName) { this->name = initName; }
これを使いましょうという話。
Hoge::Hoge(const string& initName) : name(initName) { }
理由は、初期化リストではstringのコピーコンストラクタのみが実行されるのに対して、コンストラクタでの代入では、コンストラクタ・代入が行われて効率が良くないから。
またメンバの name がもし仮に const であるならば(これは良くあることだが)、そもそも初期化リストでしか初期化できない。
代入を使うほうが理にかなっているというシチュエーションもあり、(大量組み込み型データメンバーの場合)、その詳細は、Effective C++ 【改訂第2版】 アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming seriesをご覧ください。
初期化リストは結構忘れがちなので肝に銘じます。