成员初始化器列表评估顺序
使用初始化类成员的构造函数时,了解这些初始化发生的顺序至关重要。让我们探讨一个未遵循预期初始化顺序而导致意外行为的场景。
在提供的代码中,使用成员变量 a_ 和 b_ 定义了类 A。构造函数使用参数来初始化两个成员。程序员假设成员将按列出的顺序初始化:首先是 a_,然后是 b_。然而,在特定实例中,观察到 b_ 在 a_ 之前初始化,导致在初始化之前引用 a_ 时中止。
为了确保初始化的正确顺序,必须知道顺序是由类定义中的数据成员声明确定。在上面的示例中,a_ 在类中首先声明,然后是 b_。因此,无论成员初始化器列表中的顺序如何,a_总是会在b_之前被初始化,解决了程序员遇到的问题。
以上是为什么 C 构造函数中的成员初始化顺序与初始化器列表顺序不同?的详细内容。更多信息请关注PHP中文网其他相关文章!