C++ pass pointer 和 reference

看板Programming作者 (陳揚和)時間17年前 (2008/11/18 14:51), 編輯推噓5(5012)
留言17則, 5人參與, 最新討論串1/1
我都混合使用..但現在被要求全部改成傳reference 書上說這樣比較安全.. 請問除了pointer可能可以拿來運算而造成指到不該指的地方 請問還有什麼不同阿..有什麼安全疑慮呢 另外 我都習慣讓editor提示我定義過哪些變數.. 所以都用this-> 然後選擇定義的變數 請問這樣compile後會比直接打變數名稱慢嗎 有必要把這些this->都拿掉嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.87.33

11/18 14:56, , 1F
這個, 想知道是誰建議你 this 不能用的@@
11/18 14:56, 1F

11/18 14:56, , 2F
我覺得this的寫法會很明確耶
11/18 14:56, 2F

11/18 14:58, , 3F
還有啊, 不管有沒有寫, 只要是 member
11/18 14:58, 3F

11/18 14:59, , 4F
access 應該都是由 this 出發的
11/18 14:59, 4F

11/18 15:28, , 5F
march 學長..謝謝你喔.
11/18 15:28, 5F

11/18 15:32, , 6F
那function要把傳pointer都改成傳&ref嗎
11/18 15:32, 6F

11/19 02:10, , 7F
看用途 有些地方只能用傳pointer
11/19 02:10, 7F

11/19 02:10, , 8F
比方說foo(Grid* = NULL);
11/19 02:10, 8F

11/19 02:11, , 9F
ref的話他會強迫你傳入一個grid pointer
11/19 02:11, 9F

11/19 02:11, , 10F
null的話允許你直接foo()這樣用
11/19 02:11, 10F

11/19 02:12, , 11F
說錯 ref強迫你傳入一個grid實體
11/19 02:12, 11F

11/19 02:57, , 12F
不太懂耶.. 傳 &(*Grid)這樣不行嗎
11/19 02:57, 12F

11/20 11:35, , 13F
問個愚蠢問題 在class 內部而言 沒用this
11/20 11:35, 13F

11/20 11:35, , 14F
應該沒差吧
11/20 11:35, 14F

11/23 12:34, , 15F
恩 通常只有在傳入參數要存到物件變數
11/23 12:34, 15F

11/23 12:34, , 16F
而參數又同名時用. 但我習慣都加
11/23 12:34, 16F

11/23 12:35, , 17F
原來的問題是 加了應該不會比較慢
11/23 12:35, 17F
文章代碼(AID): #198cO6cs (Programming)