我不确定这是否正确,即使我认为它应该是。
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>
答案 0 :(得分:4)
这完全没问题。
实际上,它也是在重载类外流操作符,赋值运算符,递增/递减等时所做的事情。
std::ostream& operator<<(std::ostream&, T const&)
{
//...
}
答案 1 :(得分:3)
是的,这很好。
如果您返回对被销毁的内容的引用(例如函数中的局部变量),则只会获得悬空引用。
您正在返回对参数的引用,只要它引用的内容不会被其他内容破坏,就可以了。
这正是你应该如何实现你想要的链接。
答案 2 :(得分:0)
看起来是正确的。
像这样传递引用就像传递普通指针一样。