Re: [問題] this 在什麼情況下會等於NULL??

看板C_and_CPP作者時間14年前 (2010/03/28 23:17), 編輯推噓4(409)
留言13則, 4人參與, 最新討論串3/8 (看更多)
※ 引述《yoco315 (眠月)》之銘言: : ※ 引述《bgcrwf (老王)》之銘言: : : 最近在看程式碼的時候 有看到一段搞不懂 : : if (this) { : : // blah.... : : } else { : : // blah.... : : } : : 想請教各位 : : 在什麼情況下程式會進到else這個區塊來呢?? : : 想很久想不出來 : : 謝謝 : 像這樣的情況就會是哩: : A *a = NULL ; : a->f() ; : 這樣 a::f() 裡面拿到的 this 就是 NULL。 : 會這樣設計的原因, : 可以參考一個叫做 "Null Pointer(Object) Pattern" 的手法。 就[Refactoring]這本書裡提及的Null Object Pattern 感覺和你提到的目的相反耶 Null Object就是不想"一直檢查是否為null" 才會創造一個虛無的object出來 還是說我有哪個地方誤會了? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.99.205 ※ 編輯: elefant 來自: 203.70.99.205 (03/28 23:18)

03/28 23:38, , 1F
我也有同樣的疑問 @@
03/28 23:38, 1F

03/29 01:18, , 2F
嗯, 我也翻了一下資料, 它應該是"do nothing", 而不是
03/29 01:18, 2F

03/29 01:18, , 3F
"is nothing"
03/29 01:18, 3F

03/29 09:47, , 4F
就我所理解的…objective C裡為null時~~
03/29 09:47, 4F

03/29 09:48, , 5F
呼叫的methods幾乎都是do nothing
03/29 09:48, 5F

03/29 09:49, , 6F
能直接判斷this是否為null,然後讓他do nothing,很方便呀。
03/29 09:49, 6F

03/30 03:11, , 7F
ctor 直接用null obj作init 把所有method都導到
03/30 03:11, 7F

03/30 03:11, , 8F
do nothing 這樣 是這個pattern的意思嗎?
03/30 03:11, 8F

03/30 12:55, , 9F
像length的do nothing回傳0,而回傳pointer的都會回傳null。
03/30 12:55, 9F

03/30 12:56, , 10F
void的method不做事,而description則是回傳(null)字串…
03/30 12:56, 10F

03/30 12:57, , 11F
do nothing與該類別的行為有關係吧~~
03/30 12:57, 11F

03/31 04:18, , 12F
回傳pointer的可以回傳Null object的位址, 再用多型do
03/31 04:18, 12F

03/31 04:18, , 13F
nothing吧?
03/31 04:18, 13F
文章代碼(AID): #1BhtByvm (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 8 篇):
文章代碼(AID): #1BhtByvm (C_and_CPP)