作者QQ29 (我爱阿蓉)
看板C_and_CPP
标题[观念] reference 观念询问
时间Mon Sep 7 14:00:33 2009
看到上一篇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
1F:推 dendrobium:const int& GGG(const GG a) // a is a copy 09/07 14:05
2F:推 dendrobium:上面跟这个无关XD 09/07 14:11
3F:→ QQ29:XD 我刚刚还想了一下我是不是漏考虑了什麽 09/07 14:12
4F:→ dendrobium:getX() = XXX 只是把 this->x = XXX 09/07 14:12
5F:→ dendrobium:并非是改变refer的对象 , C++的refer是不能改对象的 09/07 14:13
6F:→ QQ29:d大你1F讲得好像也是我漏考虑的 a是一份copy= = 09/07 14:14
7F:→ QQ29:所以其实 他还是只是做一个assign的动作而以噜 09/07 14:15