gpt4 book ai didi

c++ - 临时 B() 是否通过下面引用 int& ri 的初始化来延长其生命周期?

转载 作者:行者123 更新时间:2023-11-30 02:45:35 27 4
gpt4 key购买 nike

此示例摘自 C++11 标准中的 §8.5.3/5(第一个要点):

struct A { };
struct B : A { operator int&(); } b;
int& ri = B();

如果是,是否有任何方法可以在下面的代码中访问临时 B()

#include <iostream>

struct A { };
struct B : A { int i; B(): i(10) {} operator int&() { return i; } } b;

int main()
{
int& ri = B();
std::cout << ri << '\n';
}

最佳答案

不,临时 B 对象的析构函数像往常一样在完整表达式的末尾运行。它不绑定(bind)任何引用。

在您的第二个示例中,ri 是对生命周期已结束的 int 对象的引用。

关于c++ - 临时 B() 是否通过下面引用 int& ri 的初始化来延长其生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24344935/

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