Re: [問題] C++ 不能像 Java 一樣,完全避掉 pointe …

看板C_and_CPP (C/C++)作者 (rendering)時間19年前 (2005/11/25 20:51), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/2 (看更多)
※ 引述《eliang ()》之銘言: : 我自己在寫程式的時候, 對於 reference 和 pointer 的選擇方式是: : 「盡量使用 reference, 不能用 reference 時才用 pointer」 : 可是這樣會造成整體不一致, 因為有地方用 reference, 有地方用 pointer, : 寫程式時常常會搞不清楚當初宣告的型別是什麼, 而要回頭去查前面的程式碼, : 想學 Java 完全都使用 reference 也不行, 因為以下用法都不合法: : int& a[10]; // 10 個 int 的 reference, 可以分別參考 10 個 int : vector<int&> b; // 元素為 int& 的動態陣列 : 結論是: : reference 和 pointer 混用 -> 一致性差, 造成寫程式不方便 : 完全使用 reference -> 行不通 : 那麼是不是乾脆一律用 pointer 還比較好? : 請問大家是怎麼選擇的? 我個人習慣:「output parameters 用 pointer,input parameters 用 reference」 如: class Matrix { public: static void Add(Matrix* out, const Matrix& a, const Matrix& b) { // out = a + b; } }; Matrix a,b,c; Matrix::Add(&c, a, b); 其意在於:「把 pointer 傳給 Function,有付予 Function 寫值權利的意含,而 非 pointer 的傳入,僅代表資料的傳入。」 這是我個人的習慣,可以某一程度地增加程式的可讀性。 另外 association 的 relationship 我也用 pointer,理由是 association 使用 reference 會造成語意不佳。當然,這也是個人習慣。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.221.77 ※ 編輯: renderer 來自: 61.228.221.77 (11/25 21:06)

11/25 21:48, , 1F
感覺挺有道理的:) 又學了一課:p
11/25 21:48, 1F

11/28 23:19, , 2F
association 的relationship...這是什麼意思阿?
11/28 23:19, 2F
文章代碼(AID): #13XmZ6WD (C_and_CPP)
文章代碼(AID): #13XmZ6WD (C_and_CPP)