不,這不是每個人傳遞給當地人的錯誤。我只是試圖理解返回一個對你傳入的對象的引用(我正在閱讀引用)。關於返回對象的引用
所以,如果我有這樣的功能:
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