gpt4 book ai didi

list - 带有委托(delegate)构造函数的构造函数初始化列表执行顺序

转载 作者:行者123 更新时间:2023-12-04 20:47:42 26 4
gpt4 key购买 nike

我有一个棘手的 C++ 问题:当您有一个带有委托(delegate)构造函数的构造函数初始化列表时,列表执行顺序是什么?

这里存在两个相互冲突的标准规则:
1.) 构造函数初始化列表不是按列表顺序执行,而是按项目的声明顺序执行。
2.) 构造函数初始化列表中的委托(delegate)构造函数总是在“母构造函数”执行之前被调用。

哪条规则更胜一筹? (因为构造函数也是一个类项)
为什么这很重要:假设委托(delegate)的构造函数重新初始化一个已经由“母构造函数”初始化的项目,反之亦然。

最佳答案

§12.6.2/6 说

If a mem-initializer-id designates the constructor’s class, it shall be the only mem-initializer... Once the target constructor returns, the body of the delegating constructor is executed.



所以没有冲突,因为在委托(delegate)构造函数之前你不能初始化任何东西。委托(delegate)构造函数只需调用该构造函数,运行目标构造函数的初始化程序列表,运行目标构造函数,然后运行主体构造函数。

关于list - 带有委托(delegate)构造函数的构造函数初始化列表执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14857825/

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