gpt4 book ai didi

c++ - 在 C++ 标准中临时绑定(bind)到成员生命周期语句有什么意义?

转载 作者:可可西里 更新时间:2023-11-01 17:38:33 25 4
gpt4 key购买 nike

this question用户 Happy Mittal引用 C++03 标准第 12.2.5 节:在构造函数的 ctor-initializer (12.6.2) 中临时绑定(bind)到引用成员,直到构造函数退出

无论如何,这有什么用?我的意思是,一旦构造函数退出,临时对象就会被销毁,但引用仍然绑定(bind) - 现在绑定(bind)到一个已经被销毁的对象。

如果外部对象的整个生命周期仍然存在悬空引用,那么如此仔细地指定临时生命周期有什么意义呢?这种行为在什么情况下有用?

最佳答案

将引用成员绑定(bind)到死对象没有用,但明确绑定(bind)到引用时的“正常”临时生命周期延长不适用于这种情况很有用。

它还指定了特别适用于 ctor 初始化程序的临时生命周期扩展:它被扩展到 ctor 的末尾,而不是在 ctor 主体执行之前死亡。这不会有用,除非在“聪明”的类中,这些类的全部意义在于执行构造函数,并且正确地避免了这种类型的(滥用)使用。

我知道在现实世界中没有后者的例子,但它让我印象深刻,就像默认情况下不抛出析构函数破坏了在其生命周期和使用方式上“聪明”的类。这确实有现实世界的用途和came up在关于如何处理 C++0x 中 dtor 的默认语义的讨论中。

关于c++ - 在 C++ 标准中临时绑定(bind)到成员生命周期语句有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721841/

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