我想知道构造函数按声明对象的顺序调用的原因.
我读了这个问题,但我没有把那里指定的原因作为评论.
说明理由是:
它们在成员声明顺序中而不是在构造函数中按顺序构造的原因是,可能有几个构造函数,但只有一个析构函数.析构函数以相反的构造顺序销毁成员.
有人可以解释一下吗?
与子对象构造函数相比,应始终以相反的顺序调用子对象析构函数(否则太多东西会分崩离析)
对象可以有多个构造函数,每个构造函数都有自己的列表中的子对象顺序
如果我们按照特定于每个对象构造函数的顺序调用子对象构造函数,我们将无法获得子对象析构函数的单个订单.
因此,决定按声明的顺序,不依赖于不同对象构造函数中的子对象的顺序.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |