以下の内容はhttps://toburau.hatenablog.jp/entry/20090628/1246192286より取得しました。


オブジェクトは使う前に初期化する

Effective C++ 第1章4項
オブジェクトは使う前に初期化すること。

class Test {
private:
    string m_Text;
public:
    Test()
    {
        m_Text = "this is test";
    }
};

このプログラムではTestクラスのコンストラクタ内でメンバ変数のstringを初期化しているように見える。使う前に初期化するという意味では正しいけど、実際にはstringのデフォルトコンストラクタで初期化されたあとに代入されている。
この場合、メンバ初期化子リストを使うほうがよい。

class Test {
private:
    string m_Text;
public:
    Test()
    : m_Text("this is test")
    {
    }
};

これならばstringのデフォルトコンストラクタが呼ばれなくなるので効率もよい。
初期化のし忘れでバグを出してしまわないように、クラスのメンバはコンストラクタで初期化してしまう癖を付けるようにしたい。




以上の内容はhttps://toburau.hatenablog.jp/entry/20090628/1246192286より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14