gpt4 book ai didi

c++ - 默认初始化整数成员是否首选空初始化器?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:01 24 4
gpt4 key购买 nike

我刚刚读了一个comment by 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
};

当然,请通过描述为什么一个人应该比另一个人更受青睐来捍卫你的观点。

最佳答案

我更喜欢直白。正如这个问题的一些错误答案所表明的那样,并不是每个人都清楚 int()int(0) 是等价的。

我想不提供显式值的好处是,如果您更改了类型,则无需重新访问初始化列表。

关于c++ - 默认初始化整数成员是否首选空初始化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3197928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com