不,这不是每个人传递给当地人的错误。我只是试图理解返回一个对你传入的对象的引用(我正在阅读引用)。关于返回对象的引用
所以,如果我有这样的功能:
const foo & foo::function2(const foo & val) const
{
using namespace std;
return *this;
}
,然后我在主这样做:
foo object1;
object1.someproperty = 7;
foo object2 = object1.function2(object1);
object2.someproperty = 5;
cout << &object1 << endl;
cout << &object2 << endl;
当我返回由参考,不应该对象2具有相同地址(和属性)为object1?不应该改变一个对象中的“某些属性”来改变另一个对象中的值吗?或者,返回对象的引用是否简单地将值复制到新对象中?
似乎同样的事情正在发生,就像我刚才说的那样,我将返回一个foo对象而不是一个引用。
不,因为你声明了两个不同的对象在堆栈上并复制它们的值。 – cpx 2010-07-13 00:44:13