推 loveme00835:你可以這樣做, 詳細的名稱我忘記了, 但是這樣寫就會 10/29 11:56
→ loveme00835:變成有幾個成員函式就要重複幾次判斷的程式碼, 雖然我 10/29 11:57
→ loveme00835:會建議你用 smart_ptr, 但是它們的 get、operator*、 10/29 11:58
→ loveme00835:operator-> 都是不丟例外的作法, 所以你可能需要繼承 10/29 11:58
→ loveme00835:下來, 再自己覆寫 operator-> 作判斷, 要勤勞點也可以 10/29 12:01
→ loveme00835:每次存取前都用get來檢查啦 10/29 12:01
推 loveme00835:以上是對 class_a 沒有指向物件就呼叫成員函式的解決 10/29 12:07
→ loveme00835:方案, 接著針對testp來講, testp指到的記憶體既然會在 10/29 12:08
→ loveme00835:dtor裡被清除, 表示他跟類別的關係是 Composition, 那 10/29 12:10
→ loveme00835:我會建議ctor內就把它配置好會比較適當, 這樣比較符合 10/29 12:11
→ loveme00835:RAII的概念, 不然你再多寫一個類別把這些要配置的成員 10/29 12:11
→ loveme00835:包在一起, 在 CLASSA 這邊也會比較好管理 10/29 12:13
推 tomap41017:應該是null object pattern 10/29 14:09
→ tomap41017:另外delete前可以不用測試指標(只要非NULL就刪掉) 10/29 14:09
→ loveme00835:之前出現的名詞好像是 null pointer pattern, 如果也 10/29 14:41
→ loveme00835:叫 null object pattern 我會沒辦法接受, 因為那就變 10/29 14:42
→ loveme00835:成「check is nothing or not」而不是「do nothing」 10/29 14:43
→ loveme00835:責任的分配也比較怪 10/29 14:43
推 tomap41017:抱歉!記錯了!我也覺得怪怪的XD 10/29 19:28