[觀念] reference 觀念詢問

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2009/09/07 14:00), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
看到上一篇opt ==的問題 雖然知道她問題出在哪裡 不過我就自己玩一玩 發現一個地方有點不太了解 列出來請各位指點 class GG{ public: GG(){} const int& GGG(const GG a) { getX()=a.x; //????????????????這行跟我想的不一樣 return a.x; } int &getX() { return x; } int x; }; main()中寫 GG gg; GG bb; bb.x=5566; gg.GGG(bb); cout<<gg.x; //印出5566 沒問題 bb.x=7788; cout<<gg.x; //還是印出5566...?? 我在想 getX()其實就是this->x的reference 等於 a.x 既然這樣 我bb.x設定成7788 應該會連帶的把gg.x值給修改了 這邊是不是我觀念有點問題 因為其實一般我可以理解 int &p=gg.getX(); p改 會等於 改變gg.x; 這邊是透過回傳方式取額一個reference好像就不是我想像的那樣 到底實際上該怎麼解釋 請教各位謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187

09/07 14:05, , 1F
const int& GGG(const GG a) // a is a copy
09/07 14:05, 1F

09/07 14:11, , 2F
上面跟這個無關XD
09/07 14:11, 2F

09/07 14:12, , 3F
XD 我剛剛還想了一下我是不是漏考慮了什麼
09/07 14:12, 3F

09/07 14:12, , 4F
getX() = XXX 只是把 this->x = XXX
09/07 14:12, 4F

09/07 14:13, , 5F
並非是改變refer的對象 , C++的refer是不能改對象的
09/07 14:13, 5F

09/07 14:14, , 6F
d大妳1F講得好像也是我漏考慮的 a是一份copy= =
09/07 14:14, 6F

09/07 14:15, , 7F
所以其實 他還是只是做一個assign的動作而以嚕
09/07 14:15, 7F
文章代碼(AID): #1AfA62Ig (C_and_CPP)
文章代碼(AID): #1AfA62Ig (C_and_CPP)