[問題] & 為何前後空白與該完全取代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