[问题] & 为何前后空白与该完全取代ca by value么

楼主: hunandy14 (Charlott.HonG)   2016-09-30 16:56:08
把所有的Call by value
都改成 Call by reference 是比较好的做法吗?
应该理所当然的把全部都这么做么
原本是这样
int fun(int x);
> 这不适合导入超大的阵列
如果直接改
int fun(int &x);
> 又怕改到数值
加个const
int fun(const int &x);
> 好像同时兼具所有优点?
于是我就想说,那是不是C++11开始
引述数里面都不应该出现call by value
这样的想法是否有考虑不周的地方呢
====================================================
google的话又不晓得该下什么关键字QuQ
有我观察到呀为什么 Call by reference
的 & 位置是前后空白
重载下标符号 []
https://goo.gl/jcgURm
比如说
int & operator[]( int );
最初我以为可能是打错之类的
结果却一直有看到类似的打法
这是有什么原因吗~
实际测试 & 要黏在前面
或后面好像没什么影响
或是真的只是看人习惯怎么打就怎么打呢QQ
作者: wtchen (没有存在感的人)   2016-09-30 17:14:00
......我在想要不要把call by ref.这种东西加进置底变成第14诫....(没有call by ref这种东西)C是没有,C++的case好像又不太一样不过这根本文无关,抱歉打扰了 /(_ _)\不过我看不懂你的问题,你是说当你要更改x时要用call by ref还是不要?(可是你call by value不是根本改不了?)
作者: pttworld (批踢踢世界)   2016-09-30 18:26:00
前后空白是parser问题,单一主型别变量无法感受威力。
作者: james732 (好人超)   2016-09-30 19:45:00
int& x; int & x; int &x; 好像都一样?
作者: pttworld (批踢踢世界)   2016-10-01 13:11:00
减少对常见的好奇,资深艺术工程师会对程式码排版。个人理解就是本篇答案。观念正确前提,让自己好记忆。
作者: steve1012 (steve)   2016-10-01 13:57:00
call by reference其实是蛮不精确的讲法你想讲的是全部都采用shallow copy吧 跟python一样其实蛮不方便的 有时候你就是不想要改 却要一直copy讲错 有时候你想要"改"
作者: Frozenmouse (*冰之鼠*)   2016-10-01 15:50:00
指标其实也可以 T * v 前后留白这样啊XD
作者: ilms49898723 (LittleBird)   2016-10-01 17:44:00
事实上就是一样,就像你不会问func()跟func ()你初学时应该学过除了特别情况(如include)根本不会管你打几格空格另外个人习惯一次只宣告一个变量,然后都要给初始值所以我也好久没写过 int *a, b; 这种东西了XD
作者: Frozenmouse (*冰之鼠*)   2016-10-01 18:05:00
讲到最后都是宗教战争了(x

Links booklink

Contact Us: admin [ a t ] ucptt.com