Sum*_*udu 4 c++ initialization c++17
避免在类/结构中获取未初始化的成员是一般建议。考虑以下示例。
struct Foo
{
Foo(){}
int bar;
}
Run Code Online (Sandbox Code Playgroud)
要遵循建议,我必须显式初始化 bar(例如int bar{};)。
但是,如果我总是在构造后立即为其分配一个值来初始化该成员呢(让我们忘记将分配的值作为构造函数参数传递)。我还应该在这里遵循上述建议吗?如果没有开销,我仍然会这样做。但是,即使可以忽略不计,由于未使用的第一次初始化,也必须有相关的运行时开销。
初始化成员变量导致类操作更加稳定和可预测;不可能让对象处于未知或不一致的状态。另一方面,某些操作可能相对较慢,如果您知道您的程序逻辑不会让成员长时间未初始化,那么您当然可以离开它们。在 C 中,没有构造函数来填充这些成员,但人们一直在 C 中成功编程。
初始化 an 的成本int不足以在 99.9% 的情况下值得担心。
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |