[问题] 回传参考

楼主: anoymouse (没有暱称)   2014-12-05 02:38:15
http://codepad.org/twicEudY
我对参考的概念还停留在 它是一个变量的别名 可以当参数传递(call by reference)
可以有多个回传值的效果等等
可是我看不懂把一个函式当成参考回传的意思
如果接收的人是宣告成参考 counter &a =++i; 以正常来看很好了解 a等于i(itsval+1
的i)了 而且两者的位址相同
不过这程式的要求仅仅是把itsval的值复制给新的物件a 但是我不知道要如何去解读它
const counter& counter::operator++()
{
++itsval;
return *this;
}
作者: s89227 (Kei)   2014-12-05 02:42:00
这应该是operator overloading的用法吧?
楼主: anoymouse (没有暱称)   2014-12-05 03:36:00
是吧 但有什么跟一般函式不一样的地方吗?纯粹只是把++当成函式名称在使用吧?
作者: LPH66 (-6.2598534e+18f)   2014-12-05 06:26:00
跟传参数的意思一样啊, 外面看到的回传"物件"就是里面这个运算所得到的物件, 在此就是指自己本身
楼主: anoymouse (没有暱称)   2014-12-05 12:17:00
那为什么有时候接收者可以宣告成参考有时不用(像现在)
作者: purpose (秀才遇到肥宅兵)   2014-12-05 12:38:00
就意图不同啊,如果 counter a= ++i; 这样,就是有两套实体,这样 const counter& a= ++i; 则只有一个实例
楼主: anoymouse (没有暱称)   2014-12-05 14:47:00
可是不宣告成&效果一样
作者: s89227 (Kei)   2014-12-05 17:45:00
效果一样但是用到的资源量不一样呀!今天 一个int 和 一百万个int,by value和by reference差很多
楼主: anoymouse (没有暱称)   2014-12-06 02:34:00
我找了不同书看 发现有很多不同的观点我先看看再发问好了 谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com