推 johnpage: 2 09/18 16:37
推 boss0405: 2,多檢查一下不會怎樣 09/18 16:43
→ Lipraxde: 如果不是預期會傳 nullptr 的話會用 assert 檢查吧 09/18 17:50
→ rodion: 按架構layer區分是否檢查null: 檢查只需在layer的"介面" 09/18 18:12
推 goliathplus: 一般是2 09/18 19:25
→ loveme00835: 這要看責任的分配, 正常是 3, 不過這要看你的指標是 09/18 21:28
→ loveme00835: 當 in/out param 哪一個, 給 nullptr 算不算例外, 這 09/18 21:28
→ loveme00835: 要先從 API design 開始講起 09/18 21:28
推 Gway: 慣例是2 確保fun 本身有排錯能力是基本 09/18 23:27
推 ando5566: 2 09/18 23:28
→ kevin14144: 需看情況。 就程式穩定度考量。選2 :當G方法覆用時, 09/19 00:13
→ kevin14144: 能夠保證不產生例外。 效能上:若F方法多次呼叫G方法 09/19 00:13
→ kevin14144: 這種情況 就可能需要考慮移除G方法內的判斷。 另外 09/19 00:14
→ kevin14144: 還有一種做法:就是保證不產生nullptr. ~ 09/19 00:14
推 CodingMan: 2 G G 可能不是只有這裡會被呼叫 09/19 06:37
謝謝大家,我會朝 2 的方向跟大家討論。
我的 function G 是不同地方都會 call 到的。
※ 編輯: henry8168 (60.250.185.98 臺灣), 09/19/2019 16:31:32
推 jass970991: 2, 但是如果你設計的function會傳null出來,你應該 09/19 20:30
→ jass970991: 檢討不是設計錯誤 09/19 20:30
→ ketrobo: 我選擇caller檢查優先,在遇到檢查nullptr這樣的抉擇之前 09/20 01:35
→ ketrobo: ,我會更優先檢查使用指標的必要性,如果能以reference解 09/20 01:35
→ ketrobo: 決,或是null object pattern替代,則不使用pointer… 09/20 01:35