gpt4 book ai didi

c++ - 方法结果按值声明,按引用实现有效吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:19 25 4
gpt4 key购买 nike

我一直在想,如果我通过引用从方法中返回一些东西,而该方法实际上被声明为按值返回,那么它是否是有效的 c++:

class A {
public:
int method(){
int i = 123;
int& iref = i;
return iref;
}
};

这可以很好地编译并且似乎可以工作。据我了解,这应该按方法签名中声明的值返回。我不想最终返回对局部变量的引用。有谁知道这是否是没有陷阱的“正确的 C++ 代码”?

最佳答案

这是一个完全有效的 C++ 代码,并且完全符合您的预期:

  • 有一个本地变量
  • 拥有对该局部变量的局部引用
  • 复制本地引用引用的变量
  • 将该拷贝返回给调用者(展开堆栈,销毁局部变量和对它的引用)

别担心,您最终不会以这种方式返回对局部变量的引用。

关于c++ - 方法结果按值声明,按引用实现有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11810986/

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