我已经了解了什么是初始化列表以及如何使用它,但我仍然想知道一件事。
如果有的话,使用初始化列表初始化类的变量或在构造函数中自己进行初始化有什么区别?
例如
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;
};
它只是一种使代码更易于阅读和编写的设计习惯,还是有其他特定原因?