gpt4 book ai didi

c++ - 默认初始化类成员总是可取的吗?

转载 作者:行者123 更新时间:2023-12-01 14:03:00 27 4
gpt4 key购买 nike

避免在类/结构中获取未初始化的成员是一般建议。考虑以下示例。

struct Foo
{
Foo(){}
int bar;
}
要遵循建议,我必须明确初始化 bar(例如 int bar{}; )。
但是,如果我总是在构造后立即为其分配一个值来初始化该成员呢(让我们忘记将分配的值作为构造函数参数传递)。我还应该在这里遵循上述建议吗?如果没有开销,我仍然会这样做。但是,即使可以忽略不计,由于未使用的第一次初始化,也必须有相关的运行时开销。

最佳答案

初始化成员变量导致类操作更加稳定和可预测;不可能让对象处于未知或不一致的状态。另一方面,某些操作可能相对较慢,如果您知道您的程序逻辑不会让成员长时间未初始化,那么您当然可以离开它们。在 C 中,没有构造函数来填充这些成员,但人们一直在 C 中成功编程。
初始化 int 的成本不足以在 99.9% 的情况下值得担心。

关于c++ - 默认初始化类成员总是可取的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63059516/

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