gpt4 book ai didi

c++ - 列出构造函数初始化中的评估顺序

转载 作者:太空狗 更新时间:2023-10-29 23:50:25 25 4
gpt4 key购买 nike

我想知道为什么按照对象声明的顺序调用构造函数。

我读了这个question但我没有得到作为评论指定的原因。

声明的原因是:

之所以按照成员声明的顺序构造,而不是构造函数中的顺序,是因为一个构造函数可能有多个,而析构函数只有一个。并且析构函数以与构造相反的顺序销毁成员。

有人可以解释一下吗?

最佳答案

  1. 与子对象构造函数相比,子对象析构函数应该始终以相反的顺序调用(否则太多的东西会分崩离析)

  2. 对象可以有多个构造函数,每个构造函数在列表中都有自己的子对象顺序

  3. 如果我们按照特定于每个对象构造函数的顺序调用子对象构造函数,我们将无法获得子对象析构函数的单一顺序。

  4. 因此,声明顺序的决定不取决于不同对象构造函数中子对象的顺序。

关于c++ - 列出构造函数初始化中的评估顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30499360/

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