返回对参数对象的引用

时间:2015-06-17 11:25:27

标签: c++

我不确定这是否正确,即使我认为它应该是。

std::string v;
int value;

doSomething(MyFunc(v, value));

当我返回对传入的对象的引用时,我认为这是有效的,因为生命周期在父范围内。 或者可能是编译器返回对某个内部状态的引用?

我想要使用它的原因是,我不需要在函数内部分配对象,但仍然可以在嵌套函数调用中使用该对象。

即:

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    >

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

</FrameLayout>

3 个答案:

答案 0 :(得分:4)

这完全没问题。

实际上,它也是在重载类外流操作符,赋值运算符,递增/递减等时所做的事情。

std::ostream& operator<<(std::ostream&, T const&)
{
   //...
}

答案 1 :(得分:3)

是的,这很好。

如果您返回对被销毁的内容的引用(例如函数中的局部变量),则只会获得悬空引用。

您正在返回对参数的引用,只要它引用的内容不会被其他内容破坏,就可以了。

这正是你应该如何实现你想要的链接。

答案 2 :(得分:0)

看起来是正确的。

像这样传递引用就像传递普通指针一样。