看板 C_and_CPP 關於我們 聯絡資訊
看到上一篇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
dendrobium:const int& GGG(const GG a) // a is a copy 09/07 14:05
dendrobium:上面跟這個無關XD 09/07 14:11
QQ29:XD 我剛剛還想了一下我是不是漏考慮了什麼 09/07 14:12
dendrobium:getX() = XXX 只是把 this->x = XXX 09/07 14:12
dendrobium:並非是改變refer的對象 , C++的refer是不能改對象的 09/07 14:13
QQ29:d大妳1F講得好像也是我漏考慮的 a是一份copy= = 09/07 14:14
QQ29:所以其實 他還是只是做一個assign的動作而以嚕 09/07 14:15