我刚刚读到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
};
当然,请通过描述为什么一个应该优于另一个来捍卫你的观点。