C 通过参考返回本地对象
C++ return a local object by reference
我知道这个问题已经问了几次(百万(次,但我不明白:
如果我有这样的功能:
Object &function()
{
Object obj;
return obj;
}
和一个调用它的客户端代码:
Object newObject = function();
我是通过参考含义返回OBJ,这很糟糕,因为该对象一旦范围不超出范围(终止括号之后(就会销毁。但是我将当地对象传达到呼叫站点的新对象上,所以我不应该安全吗?当对象消失时,该对象是否是否已复制(其复制构造函数(?我知道将指针传递到Alosagal对象是不好的,因为我(按价值(通过(本地(指针脱离范围(堆栈框架已经消失(,该指针的位置将指向垃圾,但是为什么引用引用?代码与
的代码不是一样Object &temp = obj;
Object newObject = temp;
?请解释。
编辑上面的问题不是在问同一件事。我完全理解为什么我不应该将指针返回到本地,以及为什么我不应该返回对本地的引用来初始化呼叫站点的参考。我不明白的是,为什么我不能使用对本地的引用来初始化呼叫网站上的对象。我认为这不是那么小。
否,正如您所说的那样,这是不安全的。
无论您使用现已破坏的对象的现象引用如何做什么。
复制它为时已晚。
相关文章:
- 如何通过另一个对象中的命令正确地从一个对象返回数据
- 如何访问从 COM 对象返回的 VARIANT 数据类型中的安全数组C++?
- 从我的对象返回静态数组
- 将unique_ptr作为<Object>unique_ptr<常量对象返回>
- 从右值对象返回成员
- 视觉对象 返回 C++ 中的双精度值
- 为什么类型为 sf::Text 的对象返回不同的 getPosition().y 和 getLocalBounds().
- std::min_element 从类对象返回意外结果
- C++无效的对象返回语义
- const引用是否延长临时对象返回的临时对象的寿命
- 将 NULL 作为对象返回时未收到任何警告
- 如何在 C# 中从 com 对象返回数组(double[])
- 从重载运算符返回引用,并使用临时对象返回表达式
- Cin 对象返回值 c++
- 将变量作为类对象返回
- 使用可更改对象返回只读的最佳方法是什么
- 如何在Cython中从另一个包装对象返回包装的c++对象
- 当对象返回时,c++动态数组被清除
- 从带有动态字段的函数、对象返回
- 从堆栈上的匿名对象返回对*this的引用