Я только что прочитал комментарий от GMan о том, что
class A
{
public:
A() :
m_ptr() // m_ptr is implicitly initialized to NULL
{ }
};
должно быть предпочтительнее, чем
class A
{
public:
A() :
m_ptr(NULL) // m_ptr is explicitly initialized to NULL
{ }
};
Обратите внимание на отсутствие NULL
в первом примере.
Прав ли GMan?Это может быть несколько субъективно, поэтому «Вы предпочитаете пустые инициализаторы для инициализации по умолчанию?» может быть более уместным.
Также, если вы предпочитаете пустые инициализаторы, относится ли это к другим интегральным элементам?
class B
{
public:
B() :
m_count(),
m_elapsed_secs()
{}
private:
std::size_t m_count;
float m_elapsed_secs; //the elapsed time since instantiation
};
Конечно, отстаивайте свою точку зрения с описанием того, почему один из них должен быть предпочтительнее другого.