初期化リストとは何か、そしてその使い方を学びましたが、まだ疑問に思っていました。
初期化リストを使用してクラスの変数を初期化することと、コンストラクターで自分で行うことの違いは何ですか?
例えば
class MyClass {
public:
MyClass() : m_classID(-1), m_userdata(0) {
}
int m_classID;
void *m_userdata;
};
VS
class MyClass {
public:
MyClass(){
m_classID = -1;
m_userdata = 0;
}
int m_classID;
void *m_userdata;
};
コードを読み書きしやすくするのは単なる設計上の習慣ですか、それとも他の特定の理由がありますか?